Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有一种方法可以让我在系统名称空间中的类上写的类优先_C#_Asp.net - Fatal编程技术网

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。图书馆的用户应该(而且确实)始终拥有最终决定权。