2

在這個Autofac IoC article中,它們顯示了一個使用參數將接口映射到實現的示例。你會在文章的中間找到它。.NET IoC - .NET Unity的等效代碼

什麼是XML在Unity中的等價物?不能爲我正在做的事情使用流利的語法。需要成爲外部配置文件。

UPDATE
這是一段特定的代碼,我想知道如何在統一做 -

<component id="DataStoreProvider" 
service="Company.Server.IDataStoreProvider,Company.Server.Interface" 
type="Company.Server.DataStoreProvider,Company.Server.Core"> 
    <parameters> 
    <connectionString>My Connection String</connectionString> 
    </parameters> 
</component> 

也許不是最大的例如通過在連接字符串中這樣......但你明白了。我想知道如何在Unity中執行XML中的參數。

回答

5

你可以這樣做。請參閱本MSDN文章

<configuration> 
<configSections> 
    ... 
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" /> 
    ... 
</configSections> 
... 
<unity> 
    <typeAliases> 
     <!-- Lifetime manager types --> 
     <typeAlias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" /> 
     <typeAlias alias="external" type="Microsoft.Practices.Unity.ExternallyControlledLifetimeManager, Microsoft.Practices.Unity" /> 
     <typeAlias alias="ILoginService" type="Company.Shared.ILoginService,Company.Shared.Interface" /> 
     <typeAlias alias="LoginService" type="Company.Server.LoginService,Company.Server.Core" /> 
     <typeAlias alias="INavigationService" type="Company.Shared.INavigationService,Company.Shared.Interface" /> 
     <typeAlias alias="NavigationService" type="Company.Server.NavigationService,Company.Server.Core" /> 
    </typeAliases> 
    <containers> 
     <container name="Services"> 
     <types> 
      <type type="ILoginService" mapTo="LoginService" /> 
      <type type="INavigationService" mapTo="NavigationService" /> 
     </types> 
     </container>  
    </containers> 
    </unity> 
    .... 

UPDATE:如果你看看MSDN文章,有一個部分是介紹我相信,符合您的要求。

<type type="IMyService" mapTo="MyDataService" name="DataService"> 
     <typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, 
           Microsoft.Practices.Unity.Configuration"> 
     <constructor> 
      <param name="connectionString" parameterType="string"> 
      <value value="AdventureWorks"/> 
      </param> 
      <param name="logger" parameterType="ILogger"> 
      <dependency /> 
      </param> 
     </constructor> 
     </typeConfig> 
    </type> 
+0

請參閱更新。你能告訴我如何在你發佈的XML中傳遞參數嗎? – BuddyJoe 2009-08-10 22:06:51

+0

謝謝,Vasu。在第一次掃描時錯過了。 +1和勝利。 – BuddyJoe 2009-08-11 14:06:38