3 using System.Reflection;
6 namespace Mono.Documentation {
7 class ManifestResourceResolver : XmlUrlResolver {
10 public ManifestResourceResolver (string dir)
15 public override Uri ResolveUri (Uri baseUri, string relativeUri)
17 using (Stream s = Assembly.GetExecutingAssembly ().GetManifestResourceStream (relativeUri)) {
19 return new Uri ("x-resource:///" + relativeUri);
21 return base.ResolveUri (
22 new Uri ("file://" + new DirectoryInfo (dir).FullName + "/"),
26 public override object GetEntity (Uri absoluteUri, string role, Type ofObjectToReturn)
28 if (ofObjectToReturn == null)
29 ofObjectToReturn = typeof(Stream);
30 if (ofObjectToReturn != typeof(Stream))
31 throw new XmlException ("This object type is not supported.");
32 if (absoluteUri.Scheme != "x-resource")
33 return base.GetEntity (absoluteUri, role, ofObjectToReturn);
34 return Assembly.GetExecutingAssembly().GetManifestResourceStream (
35 absoluteUri.Segments [1]);