gpt4 book ai didi

c# - 如何在统一的 XML 配置中将一个单例注册到不同的接口(interface)?

转载 作者:太空狗 更新时间:2023-10-29 18:23:13 28 4
gpt4 key购买 nike

这里解释了如何在代码中做到这一点: Unity Register two interfaces as one singleton

_container.RegisterType<EventService>(new ContainerControlledLifetimeManager());
_container.RegisterType<IEventService, EventService>();
_container.RegisterType<IEventServiceInformation, EventService>();

bool singleton = ReferenceEquals(_container.Resolve<IEventService>(), _container.Resolve<IEventServiceInformation>());

如何在 XML 配置中做到这一点?

最佳答案

我个人喜欢用别名拼写命名空间和程序集。所以 xml:

<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">

<alias alias="Event_Interface" type="Mynamespace.IEventService, MyAssembly"/>
<alias alias="EventService_Interface" type="Mynamespace.IEventServiceInformation, MyAssembly"/>
<alias alias="Event_Class" type="Mynamespace.EventService, MyAssembly"/>

<container>
<register type="Event_Interface" mapTo="Event_Class">
<lifetime type="singleton"/>
</register>
<register type="EventService_Interface" mapTo="Event_Class">
<lifetime type="singleton"/>
</register>
</container>
</unity>

代码:

IUnityContainer container = new UnityContainer().LoadConfiguration();

关于c# - 如何在统一的 XML 配置中将一个单例注册到不同的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7843811/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com