我有2个类库(C#),说 A 和 B 。
图书馆 B
有一些方法。这些方法需要和扩展方法来加密/解密它们的值。
图书馆 System
完成这项工作。该库有一个扩展方法,但在namespace System
{
public static class EncryptDecrypt
{
public static string ToEncrypt(this Object toEncrypt)
{
}
public static string ToDecrypt(this string toDecrypt)
{
}
}
}
命名空间中扩展它。
System
我在using
命名空间中使用它的原因是在所有应用程序中使用此扩展,而无需导入B
部分。
请注意
库 .dll
将始终用作item.Member_FirstName.ToEncrypt()
引用,因为它具有用于密码/解密的私钥(密钥)。
所以无论我在哪里使用这个库;我会有一把公钥来加密。
我设置了所有这些并且当我尝试它时;无论我在哪里使用它,它都会为每个扩展提供编译时错误。
所以,如果我在字符串B
'string'不包含'ToEncrypt'的定义,不包含 扩展方法'ToEncrypt'接受类型的第一个参数 可以找到'string'(你是否错过了使用指令或者 装配参考?)
但是当我去定义这些扩展方法时。这些正在图书馆** [{1}} 。**
中正确定义我怀疑与库 A's
系统命名空间和 B's
系统命名空间存在冲突?
请纠正我。
答案 0 :(得分:3)
答案可以在这里找到......
https://msdn.microsoft.com/en-us/library/ms229026(v=vs.110).aspx
核心命名空间包括所有系统命名空间,不包括命名空间 应用程序模型和基础结构命名空间。核心 名称空间包括System,System.IO,System.Xml和 System.Net。
X请勿提供与任何内容冲突的类型名称 键入Core名称空间。
我认为他们真的不想让你这样做。为什么?因为如果第三方程序集飞来飞去,在核心框架的命名空间中引入自己的方法和类,有什么人能够信任.NET框架?