5

我的接口定義是: 公共接口IInterface其中T:用戶控件使用仿製藥...... InvalidCastException的

我的類定義是: 公共部分類App1Control:用戶控件,IInterface

的統一部我的app.config看起來如下:

<unity> 
    <typeAliases> 
     <typeAlias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" /> 
     <typeAlias alias="myInterface" type="MyApplication.IInterface`1, MyApplication" /> 
     <typeAlias alias="App1" type="MyApplication.App1Control, MyApplication" /> 
    </typeAliases> 
    <containers> 
     <container> 
     <types> 
      <type type="myInterface" mapTo="App1" name="Application 1"> 
      <lifetime type="singleton"/> 
      </type> 
     </types> 
     </container> 
    </containers> 
    </unity> 

該應用程序運行正常,但是,下面的代碼給出了一個InvalidCastException的

container.Resolve<IInterface<UserControl>>("Application 1"); 

的錯誤信息是:

無法轉換類型的對象 'MyApplication.App1Control' 爲類型 'MyApplication.IInterface`1 [System.Windows.Forms.UserControl]'

我相信我的代碼有一個小錯誤...但我無法弄清楚什麼。有什麼想法嗎?

+0

同樣的問題,在這裏,當我從改變定義的問題是固定的。任何喜悅? – miguel 2010-04-29 15:54:18

+0

嗨米格爾, 我的App1Control的定義有一個錯誤。 這個問題是固定的,當我從 公共部分類App1Control改變了定義:用戶控件,MyInterface的 .....去...... 公共部分類App1Control:用戶控件,MyInterface的 2010-06-18 22:35:16

+4

請發表您的評論作爲答案,並接受它作爲正確的。 – abatishchev 2011-05-17 15:06:56

回答

0

從OP Sunny D評論:

有我App1Control的定義是錯誤的。

public partial class App1Control : UserControl, myInterface<App1Control> 

到:

public partial class App1Control : UserControl, myInterface<UserControl>