private static UrlResolverDelegate CreateWindorUrlResolver(IWindsorContainer container) { IResourceSubSystem subSystem = (IResourceSubSystem) container.Kernel.GetSubSystem(SubSystemConstants.ResourceKey); return(delegate(string url, string basePath) { IResource resource; if (url.IndexOf(':') < 0) { url = "file://" + url; } if (!string.IsNullOrEmpty(basePath)) { resource = subSystem.CreateResource(url, basePath); } else { resource = subSystem.CreateResource(url); } using (resource) using (TextReader reader = resource.GetStreamReader()) return new StringReader(reader.ReadToEnd()); }); }
public IResource GetResource(String uri) { IResource resource; if (resourceStack.Count > 0) { resource = resourceStack.Peek(); } else { resource = null; } if (uri.IndexOf(Uri.SchemeDelimiter) != -1) { if (resource == null) { return(resourceSubSystem.CreateResource(uri)); } return(resourceSubSystem.CreateResource(uri, resource.FileBasePath)); } // NOTE: what if resource is null at this point? if (resourceStack.Count > 0) { return(resource.CreateRelative(uri)); } throw new XmlProcessorException("Cannot get relative resource '" + uri + "', resource stack is empty"); }
public IResource GetResource(String uri) { IResource resource = resourceStack.Count > 0 ? resourceStack.Peek() as IResource : null; if (uri.IndexOf(Uri.SchemeDelimiter) != -1) { return(resource == null?resourceSubSystem.CreateResource(uri) : resourceSubSystem.CreateResource(uri, resource.FileBasePath)); } if (resourceStack.Count > 0) { return(resource.CreateRelative(uri)); } throw new XmlProcessorException("Cannot get relative resource '" + uri + "', resource stack is empty"); }
protected override AbstractConfigurationRunner InstallInto(IWindsorContainer container) { IResourceSubSystem system = (IResourceSubSystem)container.Kernel.GetSubSystem(SubSystemConstants.ResourceKey); IResource resource = system.CreateResource(uri); CustomUri Uri = new CustomUri(uri); return(BooReader.Read(container, Uri, GenerationOptions, GetName(), EnvironmentName)); }
public IResource GetResource(String resourceUri, IResource resource) { if (resourceUri.IndexOf(Uri.SchemeDelimiter) == -1) { return(resource.CreateRelative(resourceUri)); } IResourceSubSystem subSystem = (IResourceSubSystem) Kernel.GetSubSystem(SubSystemConstants.ResourceKey); return(subSystem.CreateResource(resourceUri, resource.FileBasePath)); }
public static AbstractConfigurationRunner GetConfigurationInstanceFromResource( string name, string environment, IWindsorContainer container, CustomUri uri, GenerationOptions generationOptions, params string[] namespaces) { IResourceSubSystem system = (IResourceSubSystem)container.Kernel.GetSubSystem(SubSystemConstants.ResourceKey); IResource resource = system.CreateResource(uri); string baseDirectory = Path.GetDirectoryName(uri.Path); UrlResolverDelegate urlResolver = CreateWindorUrlResolver(container); return(GetConfigurationInstance( name, environment, new ReaderInput(name, resource.GetStreamReader()), generationOptions, new AutoReferenceFilesCompilerStep(baseDirectory, urlResolver), namespaces)); }
public RhinoContainer(CustomUri uri, IEnvironmentInfo env) : base(new DefaultKernel(), CreateInterpreter(uri, env)) { IResourceSubSystem system = (IResourceSubSystem)Kernel.GetSubSystem(SubSystemConstants.ResourceKey); IResource resource = system.CreateResource(uri); if (IsBoo(uri)) { RunInstaller(); } else { InitalizeFromConfigurationSource( new XmlInterpreter(resource), env); } }