c# - 如何拥有 "public public"v/s "internal public"?

标签 c# internalsvisibleto

<分区>

Possible Duplicate:
When should [assembly: InternalsVisibleTo()] be used?
Access to dll methods

我有两个程序集,A.dll 和 B.dll。 A.dll 有一些共同的特性,B.dll 使用它。我最终必须为其他用户分发 A.dll 和 B.dll。

但是,A.dll 中有一些方法我标记为公共(public)(供 B.dll 使用),但我不希望任何其他人使用它们。

有什么好的方法可以实现吗?是利用InternalsVisibleToAttribute实现这一目标的良好做法?

最佳答案

在 A.dll 中将项目标记为内部并添加以下程序集属性

using System.Runtime.CompilerServices;

[assembly: InternalsVisibleTo( "B" )]

不过请注意,您仍然可以通过反射访问内部内容,因此它不是 100% 密封的。

关于c# - 如何拥有 "public public"v/s "internal public"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11651086/

相关文章:

c# - sqldatareader 中的括号

c# - PushSharp 通知 Apple 在服务器上生成临时 RSA 文件

c# - IIS 7.5 Windows 2008 R2 远程提供 500,本地提供自定义 404

.net - 使用 "friend"-declarations 进行单元测试。馊主意?

LinqPad 访问签名程序集的内部

c# - Entity Framework 数据集映射

java - 非 void 方法中缺少 return 语句编译

visual-studio-2012 - 如何使用 Fakes Framework 垫片模拟/隔离 VS 2012 中的内部类?

c# - 如何通过安全地签署公共(public) token key 来使 InternalsVisibleTo 属性起作用?

unit-testing - 当构建过程使用强名称签署程序集时让 InternalsVisibleTo 工作?