次のモデルが与えられた場合
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であるため、現時点では機能していません