我正在尝试编写一个自定义模型绑定器,它可以将使用属性修饰的属性绑定到不同名称的请求属性,例如。
{
"app": "acme"
}
[Alias("app")]
public string ApplicationName { get; set; }
...应该导致ApplicationName
填充值'acme'。我正在为此编写自定义模型绑定器:
public BindToAliasModelBinder : IModelBinder {
public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext) {
...
}
}
public class BindFromAliasModelBinderProvider : ModelBinderProvider {
public override IModelBinder GetBinder(HttpConfiguration configuration, Type modelType) {
return new BindFromAliasModelBinder();
}
}
我已在全球注册了提供商,并且正在按预期命中活页夹。我对下一步该怎么做感到茫然 - 我如何迭代请求值并根据属性的存在有条件地绑定?
答案 0 :(得分:1)
如果你想做的只是别名,你可以在属性上使用JsonPropertyAttribute
,例如[JsonProperty(PropertyName = "app")]
。