annotate Xml/XmlResourceResolver.cs @ 116:07660ac09a5f

Merge heads, but keep de0ed24eb961/IBBoard
author IBBoard <dev@ibboard.co.uk>
date Tue, 26 Jun 2012 20:09:01 +0100
parents de0ed24eb961 7ca4acc659bb
children e53bf3356914
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
115
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
1 using System;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
2 using System.Xml;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
3 using System.Reflection;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
4 using System.Collections.Generic;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
5 using System.IO;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
6 using System.Net;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
7
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
8 namespace IBBoard.Xml
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
9 {
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
10 public class XmlResourceResolver : XmlUrlResolver
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
11 {
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
12 private Assembly assm;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
13 private Dictionary<string, string> relativeToUriMap = new Dictionary<string, string>();
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
14
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
15 public XmlResourceResolver(Assembly assembly)
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
16 {
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
17 assm = assembly;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
18 }
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
19
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
20 public void AddMapping(string relativeURI, string resourceName)
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
21 {
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
22 relativeToUriMap[relativeURI] = resourceName;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
23 }
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
24
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
25 public override object GetEntity(Uri absoluteUri, string role, Type ofObjectToReturn)
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
26 {
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
27 string absoluteUriString = absoluteUri.ToString();
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
28
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
29 if (relativeToUriMap.ContainsKey(absoluteUriString))
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
30 {
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
31 string file = relativeToUriMap[absoluteUriString];
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
32 Stream stream = assm.GetManifestResourceStream(file);
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
33 return stream;
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
34 }
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
35
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
36 return base.GetEntity(absoluteUri, role, ofObjectToReturn);
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
37 }
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
38 }
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
39 }
de0ed24eb961 * Reimplement 7ca4acc659bbdd/IBBoard without the excess noise
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
40