[英]c# Unity Container Name
我想使用代码获取统一容器(使用Load Configuration创建)名称。
使用配置文件加载命名容器,我需要查看容器的名称。
可能吗?
谢谢!!!
您可以使用以下代码获取容器的名称( 如果您在配置文件中将其命名 )
#region StaticVariables
public static IUnityContainer unityContainer { get; set; }
#endregion
#region StaticMethod
static void Main(string[] args)
{
var program = new Program();
unityContainer = new UnityContainer().LoadConfiguration();
foreach (var unityContainerRegistration in unityContainer.Registrations)
Console.WriteLine($"{unityContainerRegistration.Name } | { unityContainerRegistration.RegisteredType} | { unityContainerRegistration.MappedToType} | { unityContainerRegistration.LifetimeManager.InUse }");
}
#endregion
配置文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Unity.Configuration"/>
</configSections>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<alias alias="IOperation" type="Unity.IOperation, Unity" />
<alias alias="ILogger" type="Unity.ILogger, Unity" />
<alias alias="ConsoleLogger" type="Unity.ConsoleLogger, Unity" />
<alias alias="FileLogger" type="Unity.FileLogger, Unity" />
<alias alias="AddOperation" type="Unity.AddOperation, Unity" />
<alias alias="SubtractOperation" type="Unity.SubtractOperation, Unity" />
<alias alias="MultiplyOperation" type="Unity.MultiplyOperation, Unity" />
<alias alias="DivideOperation" type="Unity.DivideOperation, Unity" />
<alias alias="QuotientOperation" type="Unity.QuotientOperation, Unity" />
<alias alias="LoggingCallHandler" type="Logger.CallHandler.LoggingCallHandler, Unity" />
<alias alias="LoggingInterceptionBehavior" type="Logger.InstanceInterception.LoggingInterceptionBehavior, Unity" />
<namespace name="Unity" />
<assembly name="Unity" />
<sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Unity.Interception.Configuration"/>
<container>
<extension type="Interception"/>
<!--<register type="LoggingCallHandler" />-->
<register type="ILogger" mapTo="ConsoleLogger" />
<register name="ApplicationLogger" type="ILogger" mapTo="ConsoleLogger" />
<register name="+" type="IOperation" mapTo="AddOperation">
<interceptor type="InterfaceInterceptor"/>
<interceptionBehavior type="LoggingInterceptionBehavior"/>
</register>
<register name="-" type="IOperation" mapTo="SubtractOperation">
<interceptor type="InterfaceInterceptor"/>
<interceptionBehavior type="LoggingInterceptionBehavior"/>
</register>
<register name="*" type="IOperation" mapTo="MultiplyOperation" />
<register name="/" type="IOperation" mapTo="DivideOperation" />
<register name="%" type="IOperation" mapTo="QuotientOperation" />
<register name="plus" type="IOperation" mapTo="AddOperation">
<interceptor type="InterfaceInterceptor"/>
<interceptionBehavior type="LoggingInterceptionBehavior"/>
</register>
<register name="minus" type="IOperation" mapTo="SubtractOperation">
<interceptor type="InterfaceInterceptor"/>
<interceptionBehavior type="LoggingInterceptionBehavior"/>
</register>
<register name="multiply" type="IOperation" mapTo="MultiplyOperation" />
<register name="divide" type="IOperation" mapTo="DivideOperation" />
<register name="remainder" type="IOperation" mapTo="QuotientOperation" />
</container>
</unity>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.