首页 新闻 会员 周边

Unity 注入问题

1
悬赏园豆:30 [待解决问题]
class  AClass1 :IA
{
      IC _c
      public AClass1([Dependency("test")]IC c)
      {
            _c = c;
      } 

      public test()
      {
            console.writer("test");
      }
} 

IUnityContainer  _currentContainer = new UnityContainer();
_currentContainer.RegisterType<IC,Class1>("test");
_currentContainer.RegisterType<IC,Class2>("test2");
_currentContainer.RegisterType<IA, AClass1>("file");
_currentContainer.RegisterType<IA, BClass2>("ftp");

_currentContainer.Resolve<IA>("ftp").test();

这样注入是没有问题的,但是[Dependency("test")] 规定死了只有test,我想动态实现test和test2的注入,不知道有没有好的办法?

964的主页 964 | 初学一级 | 园豆:45
提问于:2012-05-17 14:02
< >
分享
所有回答(1)
0

感觉你的思路有点反了,一般的做法是

public AClass1([Dependency("test")]IC c)

这里直接对接口进行编程,即:

public AClass1(IC c)

只是在调用时动态进行注入

artwl | 园豆:16736 (专家六级) | 2012-05-17 21:39

因为我_currentContainer.Resolve<IA>("ftp").test();IA这里也要注入,选择哪种传输方式,注入传输发送,还要动态注入类型。所有就出现了这样的实现方式

支持(0) 反对(0) 964 | 园豆:45 (初学一级) | 2012-05-18 16:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册