名称空间冲突

时间:2012-07-02 22:18:16

标签: c# asp.net

我得到了:

using System.Diagnostics;
using System.Reflection;

namespace Site
{
    public abstract class General
    {

        private static string _version;

        public static string Version { get { return _version; } }

        static General()
        {
            Assembly assembly = Assembly.GetExecutingAssembly();
            FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
            _version = fileVersionInfo.ProductVersion;
        }

    }
}

代码工作正常,我可以在需要访问Site.General.Version的任何地方获取版本。现在我正在尝试使用内联标记<% = Site.General.Version %>,但我收到一条错误消息,指出System.ComponentModel.ISite不包含定义或'常规'....我认为存在命名空间冲突,因为界面 ISite

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

我强烈建议更改命名空间或类的名称。您可以有时让它工作,但这会回来咬你。并且编译器错误是非常无用的,这尤其糟糕,因为这会让您对重构感到厌烦,这通常与编写代码时的时间不同。我从经验中说话 - 糟糕的主意。

答案 1 :(得分:3)

尝试将此添加到您的aspx

的顶部
 <%@ Import Namespace="Site" %> 

并像这样更改您的代码

 <%= General.Version %>

修改

这是为web.config

上的所有页面执行此操作的语法
<system.web>
      <pages>
           <namespaces>
                <add namespace="Site" />
           </namespaces>
      </pages>
</system.web>