1

フィールドではなくプロパティにインポートを配置することをお勧めしますか?フィールドで試してみましたが、動作していますが、Resharperからフィールドが初期化されていないという警告が表示されます。

4

1 に答える 1

2

ReSharperは、MEFが変数を設定することを認識せず、MEFが変数を設定するという保証がないため(たとえば、コンテナーに入れられていない場合)、ReSharperがこれについて警告するのは合理的です。 。それを無視するか、単にフィールドをnull(またはdefault(T))に初期化することができます。

プロパティまたはフィールドを使用する必要があるかどうかについては、フィールドを使用することは問題ないと思います(公開されていない場合)。私は通常、公開したいもののためにプロパティを予約します。ここで考慮すべき特別なケースの1つは、MEFはリフレクションを使用し、一部のシナリオではプライベートリフレクションを使用できないため、SLや部分信頼などの信頼性の低いシナリオでプライベートメンバーにインポートを行う問題があることです。

于 2012-08-26T04:29:11.780 に答える