2011-07-07 4 views
0

OpenRasta(バージョン2.0.50727)では、要求を受け取ったハンドラの外側から(オブジェクトバインディングを通過した後に)デシリアライズされたエンティティのインスタンスに移動する方法?具体的には例外の場合、IOperationInterceptorはPOSTされたエンティティをクライアントに返し、エラー情報を追加して、クライアントが情報を修正して同じエンティティでPOSTを再実行できるようにします。OpenRastaの受信ハンドラの外側から逆シリアル化されたエンティティを取得する

私はIRequest.Entityを見ましたが、これはエンティティの「生の」バージョンのように見えますが、これは私の後ではありません。私もIOperation.Inputs.First().MemberIOperationInterceptor.BeforeExecute()で受け取った)を見ましたが、それはまた、最終バインドされ、インスタンス化されたオブジェクトである、私が後にしているものよりもオブジェクトバインダーの方が役に立つと思われます。

答えて

0

は、私はあなたがそうのようIOperationInterceptor.BeforeExecuteでオブジェクトを再構築することを考え出し:

私はどのようなオーバーヘッドこれは招きで、それがすでに構築されたインスタンスを取得することが可能です場合はテストしていません
public bool BeforeExecute(IOperation operation) 
{ 
    var member = operation.Inputs.First(); 
    var bindingResult = member.Binder.BuildObject(); 
    var instance = bindingResult.Instance; 
} 

、しかし、これは動作しているようだ。誰かがそれをより良くする方法についてアイディアを持っているなら、答えを加えてください。これを解決策として受け入れる前に、私はしばらく質問に答えないでおきます。