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