是否有办法阻止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" />
答案 0 :(得分:0)
您可能会尝试将命名空间别名指定为变通方法:
<%@ Import Namespace="myAlias=System.MyNamespace" %>
然后在整个.ascx文件中使用别名,如:
<myAlias:MyControl />