首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity [Dependency]属性无法解析

Unity [Dependency]属性无法解析
EN

Stack Overflow用户
提问于 2010-01-15 12:29:50
回答 1查看 11.5K关注 0票数 1

我有以下代码,当我尝试运行它时,我可以看到BrokerProvider没有被解析。下面是我的代码:

代码语言:javascript
复制
static void Main(string[] args)
        {
            IUnityContainer container = new UnityContainer();
            UnityConfigurationSection section = (UnityConfigurationSection) ConfigurationManager.GetSection("unity");
            section.Containers.Default.Configure(container);

            new TestBroker().RunTestBroker();              
        }


class TestBroker
    {
        private IBrokerProvider brokerProvider;

        public void RunTestBroker()
        {
            List<IPortfolio> portfolios = BrokerProvider.GetPortfolios();
        }

        [Dependency]
        public IBrokerProvider BrokerProvider
        {
            get { return brokerProvider; }
            set { brokerProvider = value; }
        }
    }

相关配置

代码语言:javascript
复制
 <unity>
    <typeAliases>
      <typeAlias alias="string" type="System.String, mscorlib" />
      <typeAlias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" />
      <typeAlias alias="IBrokerProvider" type="PA.Common.Interfaces.IBrokerProvider, PA.Common" />

      <typeAlias alias="PManager" type="PA.BrokerProviders.PManager, PA.BrokerProviders" />
    </typeAliases>
    <containers>
      <container>
        <types>
          <type type="IBrokerProvider" mapTo="PManager">
            <lifetime type="singleton" />
          </type>
        </types>
      </container>
    </containers>
  </unity>

另一个问题:我是否需要在我想要使用unity的每个其他类中重复main下相同的3行代码,或者设置一次就足够了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-15 12:36:54

这是因为我们直接通过调用operator new来创建TestBroker:

代码语言:javascript
复制
new TestBroker().RunTestBroker();

为了让unity解决你的依赖,你需要这样调用框架:

代码语言:javascript
复制
var broker = container.Resolve<TestBroker>();

IUnityContainer接口将为您完成所有工作--即将类型解析为实例。你只需要创建它一次,然后在你需要的任何地方传递给应用程序。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2069530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档