友元的使用
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://blog.csdn.net/qq_14914623

浙公网安备 33010602011771号