C# 有没有一种方法可以让我在系统名称空间中的类上写的类优先
我编写了名为C# 有没有一种方法可以让我在系统名称空间中的类上写的类优先,c#,asp.net,C#,Asp.net,我编写了名为ConfigurationManager.cs的类,它明显地改变了原始的(内置的)ConfigurationManager 要访问我的类: ConfigruationManager.AppSettings["key"]; 要访问系统类,请执行以下操作: System.Configuration.ConfigurationManager.AppSettings["key"]; 我想做的是,如果有人使用系统类,它仍然应该访问我的类中的一个 不能强制客户端代码使用特定类型。如果他们写:
ConfigurationManager.cs
的类,它明显地改变了原始的(内置的)ConfigurationManager
要访问我的类:
ConfigruationManager.AppSettings["key"];
要访问系统类,请执行以下操作:
System.Configuration.ConfigurationManager.AppSettings["key"];
我想做的是,如果有人使用系统类,它仍然应该访问我的类中的一个 不能强制客户端代码使用特定类型。如果他们写:
System.Configuration.ConfigurationManager.AppSettings["key"];
您对此无能为力,至少在运行时是这样。您可以编写一些静态代码分析规则来通知您该代码的任何实例,但仅此而已。您不能这样做,原因很好:如果您想要的是可能的,用户将能够对毫无戒心的.NET软件运行各种恶劣的安全攻击
例如,可以编写一个恶意库,该库返回无效数据,使您的程序永远等待,或者将软件调用的数据传输到外部站点。我相信,严肃的黑客将能够找到许多创造性的方法来利用这种可能性。简言之,答案是“不可能的”。+1。关于信任调用者使用正确的实现,有一些值得商榷的地方。毕竟,如果你不能做到这一点,你为什么要分发你的软件?@DavidL。图书馆的用户应该(而且确实)始终拥有最终决定权。