可以像字符串一样扩展类(参见http://www.c-sharpcorner.com/uploadfile/mgold/extendingstringclass03162008132109pm/extendingstringclass.aspx)有没有办法以类似的方式扩展System.Web,例如通过在这个命名空间中添加我们自己的类?
答案 0 :(得分:9)
不确定。尝试这样的事情:
namespace System.Web
{
public class ThisIsMyAdditionToSystemWeb
{
}
}
但显然,这不会给实际的.Net程序集添加任何内容,想要利用“扩展程序”的项目必须引用你的程序集。
答案 1 :(得分:8)
是的,确定,命名空间与任何特定程序集无关。否则,这是一种很好的方式,可以将您的课程用户与可恢复的希望混为一谈。并且强烈受到微软的劝阻,他们声称“微软”和“系统”都是他们的。如果某种未来的.NET更新将具有与您的名称相冲突的命名空间名称,那就毫无同情。
答案 2 :(得分:2)
问题中链接的示例是使用Extension Methods来扩展密封的字符串类。没有什么可以阻止你为任何类编写扩展方法。
正如其他人所说,扩展命名空间就像在创建新对象时声明该命名空间一样简单。在你做之前一定要考虑其含义。