友元的使用

using System.Runtime.CompilerServices;

// 内部友元
[assembly: InternalsVisibleTo("YooAsset.Editor")]
[assembly: InternalsVisibleTo("YooAsset.Test.Editor")]

// 外部友元
[assembly: InternalsVisibleTo("YooAsset.MiniGame")]
[assembly: InternalsVisibleTo("YooAsset.RuntimeExtension")]
[assembly: InternalsVisibleTo("YooAsset.EditorExtension")]
[assembly: InternalsVisibleTo("Assembly-CSharp-Editor")]
[assembly: InternalsVisibleTo("Assembly-CSharp")]
[assembly: InternalsVisibleTo("hotUpdate")]

  

解释internal修饰符为什么使在友元程序集中有访问权限

新建类库ClassLibA,ClassLibB

ClassLibB中新建类ClassB

ClassLibA中新建类ClassA

internal class ClassA
{
            
}

ClassLibB中添加对ClassLibA的引用

这时ClassB中是访问不到ClassA的,如果想要访问,必须把ClassB设置成ClassA的友元程序集

添加友元程序集需要使用InternalIsVisibleTo特性,命名空间为

using System.Runtime.CompilerServices;

[assembly:InternalsVisibleTo("ClassB")]
internal Class ClassA
{
}

也可以在AssemblyInfo.cs中直接添加

 

https://www.cnblogs.com/KSalomo/p/6481292.html

posted @ 2025-08-17 19:03  钢与铁  阅读(6)  评论(0)    收藏  举报