我有一个String的扩展方法,我希望在我的解决方案中的每个代码和类中都可用。该方法位于特定的命名空间中。我希望每个地方都能访问该命名空间,而不必将其包含在每个类中。
我已经在web配置中使用了“namespaces”标记,以便成功地将它包含在每个aspx页面上,但这并不能使它在后面的代码或其他地方可以访问。
那么,是否有类似的方法在任何地方都包含命名空间?
答案 0 :(得分:1)
那么,是否有类似的方法在任何地方都包含命名空间?
不,我担心没有。如果将扩展方法放在某些根命名空间中,那么它将位于子命名空间的范围内。例如:
namespace Foo
{
public static class Extensions
{
public static void Go(this string value)
{
...
}
}
}
将位于Foo.*
名称空间中声明的所有类的范围内。因此,您可以将扩展方法放在与您的项目同名的根命名空间中,然后它将随处可用,因为所有类都是在子命名空间中自动生成的(除非您更改它)。
答案 1 :(得分:1)
只需将扩展类放入System命名空间,它就可用于每个String对象。
namespace System
{
public static class Extensions
{
public static void M1(this string value)
{
...
}
}
}
答案 2 :(得分:0)
namespace
的{{1}}部分仅将这些命名空间提供给标记,但不提供代码隐藏。
web.config
您必须通过代码隐藏中的<configuration>
<system.web>
<pages>
<namespaces>
<add namespace="System.Data" />
<add namespace="System.Text"/>
</namespaces>
</pages>
</system.web>
</configuration>
语句显式添加名称空间,或者添加到已包含的名称空间之一,例如using
,但不建议这样做。
答案 3 :(得分:0)
您已经在每个打算访问命名空间的代码文件上放置了一个using语句,您无法全面包含。&#34;
通常,将各种实用程序,静态类和扩展类放在&#34; Common&#34;中是一种很好的形式。项目,你的其他项目都依赖于。我已经看到这种模式重复使用了很多:
Using YourNameSpace.Common.Utilities;