2

OK、状況は、PatientDtoCastleによって生成されたクラスとDynamicProxyがあるということPatientDtoProxyです。

このプロキシをSilverlightクライアントで使用していて、WCFサービス呼び出しを介してサーバーに送り返したいと考えています。

WCFサービスコントラクトはPatientDto(プロキシではなく)を期待しており、他の何かを送信しようとすると、予想どおりに爆発します。

基本的に、動作させるためにそれをに「キャスト」する必要があるように感じPatientDtoます...しかし実際には、参照をPatientDtoにキャストしても、何も変更されません-WCFはオブジェクトを認識しますとしてメモリにありPatientDtoProxy、爆破します。

明らかに、新しいものにディープコピーを行うことPatientDtoはオプションです(そして機能します)が、不快なものです。考えていないテクニックはありますか?

4

2 に答える 2

1

AutoMapperを使用して、プロキシを実際のPatientDtoオブジェクトにマッピングするのはどうでしょうか。または、手動でマッピングします。

于 2010-08-05T16:08:51.047 に答える
-1

新しいオブジェクトへのマッピングにさらに有利な代替手段を追加するために、基になるオブジェクトを抽出することができます。

私はこれを行うためにヘルパークラスを使用します:

using Castle.DynamicProxy;

namespace Magna.Client.Common.Proxy
{
    public class ProxyDtoUtils
    {
        public static T GetUnderlying<T>(T proxy)
        {
            return ProxyUtil.IsProxy(proxy) ? (T)ProxyUtil.GetUnproxiedInstance(proxy) : proxy;
        }
    }
}
于 2015-12-03T10:50:30.913 に答える