2010-12-17 7 views
0

MEFを使用して利用可能なすべてのUserControlをフォームに表示するアプリケーションを開発しました。ユーザーコントロールとフォームは両方とも同じアセンブリ内にあります。 XPからexeを起動すると、これはすべて正常に動作しますが、Windows 7マシンを使用すると例外がスローされます。この問題を解決するための提案はありますか?Windows 7でのMEF例外

+4

いくつかのコードや例が必要であり、間違いなくエラーメッセージの内容が必要です。 – IAbstract

答えて

0

HI、

これを整理しました。私はアプリケーションでLog4Netを使用していましたが、いくつかの奇妙な理由により、Winformsのセットアップアプリケーションはlog4not xmlファイルを使用していませんでした。これはインストールされたバージョンでは見つかりませんでした。これが原因でアプリケーションがエラーを起こしていました。

返信いただきありがとうございます。

1

私の最初の提案は、あなたの構成方法といくつかのコード例を示すことです。さもなければ、私は1つのUserControlを除くすべての負荷を排除します。そこから始める。あなたのことを確認してください:

[Export(typeof(IUserControl))] 
public class myUserControl : UserControl, IUserControl 
{ 
    ... 
    /* 
    * control to be exported: 
    * note: you can forego IUserControl and just use UserControl 
    *  but make sure you do so throughout the import and 
    *  export attributes. 
    */ 
    ... 
} 

...そしてホストアプリで:あなたは、いくつかのUserControlを読み込む期待しているので、

[ImportMany(typeof(IUserControl))] 
IEnumerable<IUserControl> UserControls {get;} 

私は、一例として、ここでのIEnumerableを使用しています。私はあなたが一度に表示されるコントロールをロードすることを前提としています。そうしないと、一度にすべてをしたくない場合は、むしろ、需要に、私はまだのような列挙します:あなたは繰り返すことができ

[ImportMany(typeof(IUserControl))] 
IEnumerable<Lazy<IUserControl>> UserControls {get;} 

この方法で、ヌルのためのテストUserControls[index].Valueを。

これ以上の情報がなければ、これは本当に私ができることです。

関連する問題