2

我正在尝试编写一个自定义模型绑定器,它可以将用属性装饰的属性绑定到不同名称的请求属性,例如

JSON 请求

{
    "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();
    }
}

我已经在全球范围内注册了提供商,并且按预期命中了活页夹。我不知道下一步该做什么——如何遍历请求值并根据属性的存在有条件地绑定?

4

1 回答 1

1

如果您只想使用别名,则可以使用JsonPropertyAttribute, 类似于[JsonProperty(PropertyName = "app")]属性上的东西。

于 2013-03-11T21:27:52.807 回答