1

「Architecture」というクラスを含むアセンブリライブラリが1つあります。別のアセンブリには、現在のアセンブリの特定のクラスタイプを実装するのに役立つ「ArchitectureManager」というクラスがあります。

最後に、「ArchitectureManager」を必要とする3番目のアセンブリプロジェクトがあります。問題は、この3番目のアセンブリプロジェクトから「Architecture」を非表示にする方法です。2番目のアセンブリにはそれが必要なので、プロジェクト2をプロジェクト1にマージすることもできません。

さらに明確にするためのスニペットを次に示します。

//Assembly one
public class Architecture
{
}

//Assembly two
public class ArchitectureManager
{
  //Implement some Architecture class methods
}

//Asembly three needs ArchitectureManager but doesnt need to know about Architecture.
4

1 に答える 1

4

InternalsVisibleToを含むアセンブリの属性を使用できますArchitecture。としてマークを付けinternal、他のアセンブリにのみ表示できるようにします。

このMSDNリンクを参照してください:http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx

SOでここにタグ付けされた他の質問も見ることができます:https ://stackoverflow.com/questions/tagged/internalsvisibleto

Architectureただし、オブジェクトを他のクラスに表示できない特定の理由はありますか?私はめったにこれを自分でしません。

于 2013-02-11T00:26:31.813 に答える