【发布时间】:2014-10-14 04:15:39
【问题描述】:
我有一个实现IRouteConstraint 接口的基类。我正在尝试扩展该类并覆盖基类中定义的Match() 方法。这适用于使用 Visual Studio 2013 Update 2 的 ASP.NET MVC5 应用程序。
我的课程结构如下:
\Project\App_Code\BaseRouteConstraint.cs:
namespace Website {
public class BaseRouteConstraint: IRouteConstraint {
public virtual bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) {
...code
}
}
}
\Project\App_Code\DerivedRouteConstraint.cs:
namespace Website {
public class DerivedRouteConstraint: BaseRouteConstraint {
public override bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) {
if(!base.Match(httpContext, route, values, routeDirection) {
...code
}
}
}
}
但我实际上不能使用 DerivedRouteConstraint 类,因为 Visual Studio 说它不存在。我也收到此警告:
'Website.BaseRouteConstraint' 在 'C:\Project\App_Code\BaseRouteConstraint.cs' 与 在“C:\Project\”中导入类型“Website.BaseRouteConstraint”。使用 'C:\Project\App_Code\BaseRouteConstraint.cs'中定义的类型
我已经检查过了,我没有不小心将我的基类的源代码文件复制到解决方案的其他任何地方。
【问题讨论】: