我得到了:
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
。
我该如何解决这个问题?
答案 0 :(得分:4)
我强烈建议更改命名空间或类的名称。您可以有时让它工作,但这会回来咬你。并且编译器错误是非常无用的,这尤其糟糕,因为这会让您对重构感到厌烦,这通常与编写代码时的时间不同。我从经验中说话 - 糟糕的主意。
答案 1 :(得分:3)
尝试将此添加到您的aspx
的顶部 <%@ Import Namespace="Site" %>
并像这样更改您的代码
<%= General.Version %>
修改强>
这是为web.config
上的所有页面执行此操作的语法<system.web>
<pages>
<namespaces>
<add namespace="Site" />
</namespaces>
</pages>
</system.web>