ASP.NET用户控件中的模糊引用异常

时间:2014-07-28 16:28:24

标签: asp.net iis namespaces web-config

是否有办法阻止ASCX控件使用web配置system.web/pages/namespaces中包含的命名空间,这将导致模糊的引用异常。

我能想到的最小的例子,重现行为:

a)具有以下类的MyAssembly:

namespace MyAssembly.Namespace
{
  public class Constants
  {
    public const string MyConstant = "Hello World";
  }
}

b)具有以下内容的ASCX UserControl:

<%@ Control Language="C#" %>
<%@ Assembly Name="MyAssembly, Version=1.0.0.0, Culture=neutral, 
                   PublicKeyToken=0123456789abcdef" %>
<%@ Import Namespace="MyAssembly.Namespace" %>
<%: Constants.MyConstant %>

c)在web.config文件中修改后:

system.web/compilation/assemblies:
  <add assembly="Microsoft.Office.Project.Server.PWA, Version=15.0.0.0,
                 Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
system.web/pages/namespaces:
  <add namespace="Microsoft.Office.Project.PWA" />

1 个答案:

答案 0 :(得分:0)

您可能会尝试将命名空间别名指定为变通方法:

<%@ Import Namespace="myAlias=System.MyNamespace" %>

然后在整个.ascx文件中使用别名,如:

<myAlias:MyControl />