2 Stimmen

.NET IoC - Äquivalenter Code für .NET Unity

In diesem Autofac IoC Artikel zeigen sie ein Beispiel für die Zuordnung einer Schnittstelle zu einer Implementierung mit einem Parameter. Sie finden es auf halber Strecke des Artikels.

Was ist die Unity-Entsprechung in XML? Ich kann die fließende Syntax nicht für das verwenden, was ich tue. Es muss eine externe Konfigurationsdatei sein.

UPDATE :
Dies ist der spezielle Teil des Codes, den ich in Unity wissen möchte -

<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>

Vielleicht nicht das beste Beispiel für die Übergabe der Verbindungszeichenfolge auf diese Weise... aber Sie verstehen den Punkt. Ich würde gerne wissen, wie man Parameter in XML in Unity zu tun.

5voto

Vasu Balakrishnan Punkte 1723

Sie könnten dies tun. Siehe dies MSDN Artikel

<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: Wenn Sie sich den MSDN-Artikel ansehen, gibt es einen Abschnitt, in dem beschrieben wird, was meiner Meinung nach Ihren Anforderungen entspricht.

<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>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X