这个问题在SO上引发了两次,我尝试了这些解决方案,但它对我不起作用。
我正在尝试为ComplexObject创建CustomRouteConstraint,这是ActionMethod中的一个参数,其中使用了HttpPost。
我正在关注此网址以实现自定义路由。
1。创建CustomRouteConstraint。
public class CustomRouteConstraint : IHttpRouteConstraint
{
public bool Match(HttpRequestMessage request, IHttpRoute route, string parameterName, IDictionary<string, object> values, HttpRouteDirection routeDirection)
{
object value;
if (values.TryGetValue(parameterName, out value) && value != null)
{
return true;
}
return false;
}
}
2。 WebAPIConfig.cs文件中的MapAttribute
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var constraintResolver = new DefaultInlineConstraintResolver();
constraintResolver.ConstraintMap.Add("CustomObjRouteConstraint", typeof(CustomRouteConstraint));
config.MapHttpAttributeRoutes(constraintResolver);
}
}
第3。在ActionMethod中使用约束。
[Route("Address/{param:CustomObjRouteConstraint}")]
[HttpPost]
public AddressUpdateResult UpdateCustomerAddresses(UpdateCustomerAddressCommand param)
{
Handle(param);
return xyz;
}
在运行时我收到错误:
“DefaultInlineResolver无法解析CustomRouteConstraint”
请帮忙。