C# 隐藏程序集类

C# 隐藏程序集类,c#,.net,C#,.net,我有一个汇编库,其中包含一个名为“架构”的类。在另一个程序集中,我有一个名为“ArchitectureManager”的类,它帮助我实现当前程序集的某些特定类类型 最后,我有一个需要“ArchitectureManager”的第三个组装项目,问题是如何从第三个组装项目中隐藏“架构”,因为第二个组装项目需要它,而且我不能将项目2合并到项目1中 下面是一个片段以供进一步澄清: //Assembly one public class Architecture { } //Assembly two p

我有一个汇编库,其中包含一个名为“架构”的类。在另一个程序集中,我有一个名为“ArchitectureManager”的类,它帮助我实现当前程序集的某些特定类类型

最后,我有一个需要“ArchitectureManager”的第三个组装项目,问题是如何从第三个组装项目中隐藏“架构”,因为第二个组装项目需要它,而且我不能将项目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.

您可以对包含
体系结构的程序集使用
InternalsVisibleTo
属性。将其标记为
内部
,并允许其仅对其他程序集可见

请参阅此MSDN链接:

您还可以看到此处标记的其他问题,因此:


但是,您的
体系结构
对象不能被其他类看到有什么具体原因吗?我自己很少这样做。

您可以为包含
体系结构的程序集使用
InternalsVisibleTo
属性。将其标记为
内部
,并允许其仅对其他程序集可见

请参阅此MSDN链接:

您还可以看到此处标记的其他问题,因此:


但是,您的
体系结构
对象不能被其他类看到有什么具体原因吗?我自己很少这样做。

体系结构方法返回的信息只能由ArchitectureManager处理,因此我希望将所有繁重的工作和可能的“bug”委派给他人生产转移到第二个程序集。是否有任何原因使它不能包含在与
ArchitectureManager
相同的目录中,如果它只会被它使用?ArchitectureManager属于不同的项目,并且使用特定的委托和类型,而这些委托和类型不在使用“Architecture”类的项目中。它们都是库,但其中一个扩展到了另一个功能,但您的InternalVisibleTo解决方案很好,谢谢:)架构方法返回的信息仅由ArchitectureManager处理,因此我想委托所有繁重的工作和可能的“bug”生产转移到第二个程序集。是否有任何原因使它不能包含在与
ArchitectureManager
相同的目录中,如果它只会被它使用?ArchitectureManager属于不同的项目,并且使用特定的委托和类型,而这些委托和类型不在使用“Architecture”类的项目中。它们都是库,但一个扩展到了另一个功能,但您的InternalVisibleTo解决方案很好,谢谢:)