C#我可以在我的dot net网站的任何地方访问命名空间,用于代码隐藏和类

时间:2013-08-23 15:07:47

标签: c# namespaces

我有一个String的扩展方法,我希望在我的解决方案中的每个代码和类中都可用。该方法位于特定的命名空间中。我希望每个地方都能访问该命名空间,而不必将其包含在每个类中。

我已经在web配置中使用了“namespaces”标记,以便成功地将它包含在每个aspx页面上,但这并不能使它在后面的代码或其他地方可以访问。

那么,是否有类似的方法在任何地方都包含命名空间?

4 个答案:

答案 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;