Tej*_*tar 1 .net c# architecture class-library
这可能是这个问题的重复,但我不想使用解决方案建议即使用Web服务.
这是场景:
1)我想向客户端公开一个类库.我们将其命名为"MyClassLibrary".
2)在"MyClassLibrary"项目的同一解决方案中还有两个库"Library1"和"Library2".
3)"Libray1"在"Library2"中引用,"Library2"在"MyClassLibrary"中引用.
4)"MyClassLibrary"中没有"Libray1"的直接引用.
我想要什么?
"MyClassLibrary"的客户端不能访问"Library1"中的类,方法.它有可能吗?如果我为"MyClassLibrary"创建nuget包,它将包含"Library1"(以及"Library2")的dll.因此,使用该DLL,客户端可以轻松访问"Library1"(以及"Library2")中的内容.我怎么能避免这种情况?我希望我的客户端只能访问"MyClassLibrary"中所需的函数,而不能访问"Library1"(可能还有"Library2").怎么做到这一点?
如果您希望客户端访问代码不太方便,可以使用访问说明符来阻止他这样做.例如,您可以使用该InternalsVisibleTo属性隐藏您的实现,或者将其全部放在一个程序集中,并将其中的大部分设置为私有.
但是,这只是为了防止他意外使用它.
如果它包含您不想让他知道的秘密,则不得将其交付给他.一种选择是仅提供Web服务的接口,并在您的位置运行带有秘密的实际服务.如果你给他组装,没有任何保护,混淆或其他模糊,你的秘密是公开的.
| 归档时间: |
|
| 查看次数: |
271 次 |
| 最近记录: |