0

OpenRasta (バージョン 2.0.50727) では、リクエストを受け取るハンドラーの外部から (オブジェクト バインディングを介して渡された後に) デシリアライズされたエンティティのインスタンスにアクセスするにはどうすればよいですか? 具体的には; 例外が発生した場合IOperationInterceptor、POST されたエンティティをクライアントに返し、エラー情報を追加して、クライアントが情報を修正し、同じエンティティで POST をやり直すことができるようにします。

を見てきましたがIRequest.Entity、それはエンティティの「生の」バージョンのように見えますが、これは私が求めているものではありません。私もIOperation.Inputs.First().Member( で受け取ったようにIOperationInterceptor.BeforeExecute())見ましたが、それも、最終的にバインドされインスタンス化されたオブジェクトである私が求めているものよりも、オブジェクトバインダーにとってより有用なもののように見えます。

4

1 に答える 1

0

IOperationInterceptor.BeforeExecute次のようにオブジェクトを再構築できることがわかりました。

public bool BeforeExecute(IOperation operation)
{
    var member = operation.Inputs.First();
    var bindingResult = member.Binder.BuildObject();
    var instance = bindingResult.Instance;
}

これにより発生するオーバーヘッドの種類と、既に構築されたインスタンスに到達できるかどうかはテストしていませんが、これは機能しているようです。誰かがそれをより良くする方法についてアイデアを持っている場合は、回答を追加してください。これを解決策として受け入れる前に、しばらく質問を未回答のままにします。

于 2011-07-08T07:40:38.707 に答える