2009-11-15 50 views
2

我已經在我的項目中設置了統一,並且它正在爲那些沒有實現構造函數注入的對象工作。現在的問題是我有一個對象,它需要一個自定義對象作爲構造函數參數。我已經設置了配置的下方,這樣的錯誤,告訴我, 「的TypeConverter不能從System.String轉換」統一構造函數

<unity>  
    <typeAliases>  
    <typeAlias alias="TransactionRepositoryInterface" type="Ib.TransactionViewer.DataAccess.ITransactionRepository, Ib.TransactionViewer.DataAccess" />  
    <typeAlias alias="TransactionRepositoryToUse" type="Ib.TransactionViewer.DataAccess.TransactionRepository, Ib.TransactionViewer.DataAccess" />  
    </typeAliases> 
    <containers>  
    <container>  
     <types>  
     <type type="TransactionRepositoryInterface" mapTo="TransactionRepositoryToUse">  
      <lifetime type="singleton" />  
      <typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">  
      <constructor>  
       <param name="TransactionProcessor" parameterType="Ib.TransactionViewer.DataAccess.TransactionProcessor, Ib.TransactionViewer.DataAccess">  
       <value value="Ib.TransactionViewer.DataAccess.TransactionProcessor" type="Ib.TransactionViewer.DataAccess.TransactionProcessor, Ib.TransactionViewer.DataAccess" />  
       </param> 
      </constructor>  
      </typeConfig>  
     </type>  
     </types> 
    </container>  
    </containers>  
</unity> 
+1

使用XML配置的要求?我更喜歡Fluent代碼配置;我懷疑你會發現它更容易閱讀和調試。 – TrueWill 2009-11-15 17:27:02

回答

2

我不知道,但它看起來對我來說,團結是試圖利用價值

Ib.TransactionViewer.DataAccess.TransactionProcessor

爲一個字符串。

也許你應該寫類似:

<unity>  
    <typeAliases>  
    <typeAlias alias="TransactionRepositoryInterface" type="Ib.TransactionViewer.DataAccess.ITransactionRepository, Ib.TransactionViewer.DataAccess" />  
    <typeAlias alias="TransactionRepositoryToUse" type="Ib.TransactionViewer.DataAccess.TransactionRepository, Ib.TransactionViewer.DataAccess" />  
    </typeAliases> 
    <containers>  
    <container>  
     <types>  
     <type type="TransactionRepositoryInterface" mapTo="TransactionRepositoryToUse">  
      <lifetime type="singleton" />  
      <typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement, Microsoft.Practices.Unity.Configuration, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">  
      <constructor>  
       <param name="TransactionProcessor" parameterType="Ib.TransactionViewer.DataAccess.TransactionProcessor, Ib.TransactionViewer.DataAccess">  
       <dependency />  
       </param> 
      </constructor>  
      </typeConfig>  
     </type>  
     </types> 
    </container>  
    </containers>  
</unity> 
相關問題