C#程序集,友元程序集

3
C#的internal访问修饰符是指:只能在包含它的程序集或友元程序集中访问。那么我的问题是,什么是C#程序集?在“包含它的程序集或友元程序集”中意味着什么?是否在同一命名空间或项目中?
4个回答

9

装配件(assembly)通常是指单个 .dll.exe 文件。
C# 项目通常会编译成单个装配件。

你可以使用 [assembly: InternalsVisibleTo(...)] 属性来标记一个友元装配件。


谢谢,那很有道理。顺便问一下,声明友元程序集有什么用? - xinghua
@xinghua:如果你想创建只对另一个程序集可见的成员(例如,用于单元测试), - SLaks

2

2

这段内容涉及IT技术,需要翻译成中文。原文中提到的“assembly”是指具有清单信息(在.NET情况下)的IL代码,可以是DLL或EXE文件。通过使用清单信息,一个程序集可以被声明为另一个程序集的“友元”,从而访问内部数据类型。

通过使用属性“[assembly: InternalsVisibleTo..]”,您可以将特定信息标记到程序集的清单中。


1
该程序集包含中间代码、资源以及元数据。我们可以使用Visual Studio附带的ildasm(Intermediate Language Disassembler)工具来查看程序集的内部结构。要访问它,您需要打开Visual Studio命令提示符并键入ildasm.exe。这将启动一个Windows应用程序,您可以使用它来探索任何.Net应用程序。
友元程序集是指能够访问另一个程序集的友元(Visual Basic)或内部(C#)类型和成员的程序集。如果您将一个程序集标识为友元程序集,那么您就不必将类型和成员标记为公共的,以便其他程序集可以访问它们。这在以下场景中特别方便:
在单元测试期间,当测试代码运行在单独的程序集中,但需要访问被测试程序集中标记为友元(Visual Basic)或内部(C#)的成员时。
当您正在开发一个类库,并且新增内容包含在单独的程序集中,但需要访问已标记为友元(Visual Basic)或内部(C#)的现有程序集的成员时。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接