Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 友元汇编语句的范围是什么?_C#_.net Assembly_Internal - Fatal编程技术网

C# 友元汇编语句的范围是什么?

C# 友元汇编语句的范围是什么?,c#,.net-assembly,internal,C#,.net Assembly,Internal,友元汇编语句的范围是什么 例如: A.cs [assembly: InternalVisibleTo("Friend")] internal class A { ... } B.cs internal class B { ... } 名为“Friend”的程序集是否可以访问类B 整个项目的范围(即使是汇编语句也只在一个类中设置)?该属性不应用于该类,这是因为关键字assembly:位于它前面。这意味着该属性将应用于整个程序集 正如你在页面上看到的。该属性的声明指定它只能应用于程序集。因此,使

友元汇编语句的范围是什么

例如:

A.cs
[assembly: InternalVisibleTo("Friend")]
internal class A { ... }

B.cs
internal class B { ... }
名为“Friend”的程序集是否可以访问类
B


整个项目的范围(即使是汇编语句也只在一个类中设置)?

该属性不应用于该类,这是因为关键字
assembly:
位于它前面。这意味着该属性将应用于整个程序集


正如你在页面上看到的。该属性的声明指定它只能应用于程序集。因此,使程序集中的每个内部元素对“朋友”程序集可见。

该属性不应用于类,这是因为关键字
assembly:
位于它前面。这意味着该属性将应用于整个程序集

正如你在页面上看到的。该属性的声明指定它只能应用于程序集。因此,使程序集中的每个内部对象对“朋友”程序集可见

您可以使用InternalsVisibleToAttribute属性来标识给定程序集的一个或多个好友程序集。以下示例使用程序集A中的InternalsVisibleToAttribute属性,并将程序集AssemblyB指定为友元程序集。这使程序集assembly B可以访问程序集A中标记为Friend(Visual Basic)或internal(C#)的所有类型和成员

取自

您可以看到
内部可视属性
的定义如下。注意
AttributeTargets
仅允许
程序集
而不允许
类型

[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)]
public sealed class InternalsVisibleToAttribute : Attribute
无论您将此属性放置在何处,它都会使程序集中的所有内部类型对朋友程序集可见

您可以使用InternalsVisibleToAttribute属性来标识给定程序集的一个或多个好友程序集。以下示例使用程序集A中的InternalsVisibleToAttribute属性,并将程序集AssemblyB指定为友元程序集。这使程序集assembly B可以访问程序集A中标记为Friend(Visual Basic)或internal(C#)的所有类型和成员

取自

您可以看到
内部可视属性
的定义如下。注意
AttributeTargets
仅允许
程序集
而不允许
类型

[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)]
public sealed class InternalsVisibleToAttribute : Attribute

无论您将此属性放置在何处,它都会使程序集中的所有内部类型对朋友程序集可见。

B将可供朋友程序集访问。SynerCoder击败了我,但正如他所说,该声明适用于汇编级别


这对于让您的测试项目访问您的内部方法和类型非常有用:)

B将可供您的朋友程序集访问。SynerCoder击败了我,但正如他所说,该声明适用于汇编级别


这对于让您的测试项目访问您的内部方法和类型非常有用:)

谢谢。项目中是否有放置汇编语句的典型位置/最佳实践?@JohnThreepwood我通常将其与其他汇编属性放在一起:
/Properties/AssemblyInfo.cs
@JohnThreepwood
AssemblyInfo.cs
包含从设置对话框自动填充的所有属性。啊,是的,这是有意义的。非常感谢。非常感谢。项目中是否有放置汇编语句的典型位置/最佳实践?@JohnThreepwood我通常将其与其他汇编属性放在一起:
/Properties/AssemblyInfo.cs
@JohnThreepwood
AssemblyInfo.cs
包含从设置对话框自动填充的所有属性。啊,是的,这是有意义的。非常感谢。谢谢,这有助于理解。谢谢,这有助于理解。