获取Resolve unity容器的界面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取Resolve unity容器的界面相关的知识,希望对你有一定的参考价值。
如何将字符串传递给Unity容器以解析接口,因为我不知道每次都需要解析的接口,如果它将是IFoo或IBar,例如
interface IParentInterface{
string GetData();
}
interface IFoo:IParentInterface{}
interface IBar:IParentInterface{}
class FooService : IFoo{
string GetData(){}
}
IUnityContainer container = new UnityContainer();
string serviceName="IFoo";
IParentInterface parentInterfaceObj= container.Resolve<serviceName>();
因此,在这种情况下,如果我将“IFoo”作为字符串传递给容器,那么它将解析IFoo接口。
答案
您可以使用非泛型版本的Resolve
并将其传递给类型实例。您可以从程序集限定的类型名称创建类型,例如:
var instance = container.Resolve(Type.Get("System.ComponentModel.INotifyPropertyChanged, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"));
不过,我建议使用命名注册,因为您可以定义自己的较短标识符。
container.Register<IService, SuperFoo>( "foo" );
var instance = container.Resolve<IService>( "foo" );
以上是关于获取Resolve unity容器的界面的主要内容,如果未能解决你的问题,请参考以下文章
CentOS yum 命令出现 [Errno 14] curl#6 - "Couldn't resolve host ..." 的解决方法(代码片段
[react] Module not found: Can't resolve 'schedule' in 'C:Usersadcaldvmtn7myapp (代码片段