ServiceStack API を開発していますが、次へのルーティングに問題があります。
[BsonId]
public ObjectId Id { get; set; }
次のようにカスタムバインディングモデルを設定しようとしました:
public class ObjectIdModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var result = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
return result == null ? ObjectId.Empty : ObjectId.Parse((string)result.ConvertTo(typeof(string)));
}
}
protected void Application_Start()
{
ModelBinders.Binders.Add(typeof(ObjectId), new ObjectIdModelBinder());
これは AppHost.cs にあります
ルート .Add("/user") .Add("/user/{Id}");
URLからAPIにアクセスしようとしたとき:
http://localhost:1000/api/user/1234567
次のエラーが表示されます。
エラー コード RequestBindingException メッセージ ServiceStack.WebHost.Endpoints.RestHandler.GetRequest(IHttpRequest httpReq, IRestPath restPath) で要求スタック トレースをバインドできません ServiceStack.WebHost.Endpoints.RestHandler.ProcessRequest(IHttpRequest httpReq, IHttpResponse httpRes, String operationName)
基本的なネイティブ型へのバインドは機能しますが、このようなものを修正する方法はありますか?