Vac*_*ano 5 ioc-container inversion-of-control unity-container
我希望能够将以下内容加载到Unity中:
UnityContainer.RegisterType<ClientRegistrationVM, ClientRegistrationVMDesign>();
Run Code Online (Sandbox Code Playgroud)
通过XML文件加载它.
这里将是我希望发生的一些psudo代码.
FileStream unityMappings = new FileStream(@".\UnityMappings.xml", FileMode.Open)
UnityContainer.CreateFromXML(unityMappings);
unityMappings.Dispose();
Run Code Online (Sandbox Code Playgroud)
UnityMappings.xml文件将包含类型所在的映射和dll.
我想要Unity甚至可能吗?有没有人这样做过?
您可以在Unity中使用XML配置,甚至可以混合设计时配置(XML)和运行时(代码)配置.
但是,设计时配置使用UnityConfigurationSection和仅通过此支持配置加载,因此如果您希望将配置放在不同的(例如,不是app.config或web.config)文件中,则需要做更多的工作.
幸运的是,您可以在以下文档中找到示例:从备用文件加载配置 部分:
using System.Configuration;
var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = "unity.config" };
Configuration configuration =
ConfigurationManager.OpenMappedExeConfiguration(fileMap,
ConfigurationUserLevel.None);
var unitySection = (UnityConfigurationSection)configuration.GetSection("unity");
var container = new UnityContainer().LoadConfiguration(unitySection);
Run Code Online (Sandbox Code Playgroud)