2009-09-29 14 views
5

以前はSpring.Netで作業していたStructureMapを使い始めました。私はDefaultConventionScannerとアセンブリをスキャンし、設定よりも慣習を使ってクラスを見つけることが大好きです。しかし、インターフェイスを実装するクラスはパブリックでなければならないという制限があるようですが、インターフェイスをパブリックにしたり、アセンブリの内部に実装したりするのは嫌です。Structuremap DefaultConventionScannerは非公開クラスを見つけることができます

DefaultConventionScannerに内部クラスの検索を依頼する方法はありますか?

答えて

9

いいえ、実際にクラスを公開する制限は、ConventionMapのすべてに適用されます。 は、InternalsVisibleTo属性を使用する場合は、内部構造型をStructureMapで手動で登録しますが、十分にサポートされていないか、文書化されていません。 AssemblyScannerはエクスポートされた型だけを公開するため、内部型を登録するITypeScanner(DefaultConventionScannerなど)を作成することはできません。

+0

この回答は数年前であることに注意してください...これは今の場合ですか? –

+0

はい、それは今の場合です。 "舞台裏で、StructureMapは.Net CLRのAssembly.GetExportedTypes()メソッドを使用して型を検索しています..." - http://structuremap.github.io/registration/auto-registration-and-conventions/ –

関連する問題