1

次のモデルが与えられた場合

public class RequestBase
{
    public DateTime TransactionTimestamp { get; set; }

    public Guid RequestMessageId { get; set; }

}

 [ModelBinder(typeof(RequestBaseModelBinder))]
public class StandardRequest : RequestBase
{

     public Guid MyGuidId { get; set; }

    public int MyIntId { get; set; }

}

の値はRequestBaseヘッダー経由で送信されるため、カスタム モデル バインダーを実装してモデルにバインドしようとしています。

これは私がこれまでに得たものです

 public class RequestBaseModelBinder :IModelBinder
{
    public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
    {
        var requestBase = bindingContext.Model as RequestBase;

        if (requestBase != null)
        {
            requestBase.RequestMessageId =
               Guid.Parse(actionContext.Request.Headers.GetValues("RequestMessageId").FirstOrDefault());

            requestBase.TransactionTimestamp =
               DateTime.Parse(actionContext.Request.Headers.GetValues("TransactionTimestamp").FirstOrDefault());

            return true;
        }

        return false;
    }
}

bindingContext.Modelがnullであるため、現時点では機能していません

4

1 に答える 1