예제 #1
0
        /// <summary>
        /// Inicializa um IoCManager utilizando um determinado resource, que pode ser o AppDomain.config (Web.Config, por exemplo),
        /// ou um arquivo xml, ou um xml compilado dentro de uma assembly.
        /// </summary>
        /// <param name="resourceName">
        /// Deve ser um dos seguintes valores, dependendo do tipo do resource:
        /// null, se for AppDomainConfig, ou
        /// "assembly://nome-do-assembly/path-dentro-do-assembly/nome-do-arquivo.xml
        /// "nome-do-arquivo-com-path.xml", se for XmlFile.
        /// </param>
        /// <param name="resourceType">O tipo do resource para carregar o manager.</param>
        private IoCManager(string resourceName, IoCManagerResourceType resourceType)
        {
            switch (resourceType)
            {
            case IoCManagerResourceType.AppDomainConfig:
                container = new WindsorContainer(new XmlInterpreter());
                break;

            case IoCManagerResourceType.Assembly:
                container = new WindsorContainer(new XmlInterpreter(new AssemblyResource(resourceName)));
                break;

            case IoCManagerResourceType.XmlFile:
                container = new WindsorContainer(new XmlInterpreter(new FileResource(resourceName)));
                break;
            }
        }
예제 #2
0
 /// <summary>
 /// Cria uma instância diferente do IoCManager, com outros tipos de recursos.
 /// </summary>
 /// <param name="resourceName">
 /// Deve ser um dos seguintes valores, dependendo do tipo do resource:
 /// null, se for AppDomainConfig, ou
 /// "assembly://nome-do-assembly/path-dentro-do-assembly/nome-do-arquivo.xml
 /// "nome-do-arquivo-com-path.xml", se for XmlFile.
 /// </param>
 /// <param name="resourceType">O tipo do resource para carregar o manager.</param>
 /// <returns>Instância do IoCManager</returns>
 public static IoCManager GetInstance(string resourceName, IoCManagerResourceType resourceType)
 {
     return(new IoCManager(resourceName, resourceType));
 }