[seasar-dotnet:1014] Re: DBFlute &S2Dxoによるデータ詰め替えについて

kubo [E-MAIL ADDRESS DELETED]
2008年 10月 20日 (月) 17:53:41 JST


久保(jflute)です。

中井さん、こんばんは

早速確認させて下さい。
コメントアウトされた部分で、実際例外が発生する直前
の処理における「destType」と「srcValue」は何になるか
教えて頂けますでしょうか?


#
# S2Dxo詳しいコミッタの方気づいた時に「Help」お願いします
#

2008/10/20 中井 雅文 <[E-MAIL ADDRESS DELETED]>:
> お世話になります。中井と申します。
>
> 現在、Quill、DBFlute、S2Dxoでアプリケーションを作成しております。
>
> DBFluteで自動生成したEntityをカスタムDtoに移送しようとS2Dxoを使ったのですが、
> 以下のExceptionが発生してしまいました。
> (移送元が試しに作ったカスタムEntityであれば問題ありません)
>
> 【発生場所】
> Seasar.Dxo.Interceptor.DxoInterceptor._TryExchangeSameNameProperty
>
> 【例外内容】
> 'System.StackOverflowException' のハンドルされていない例外が mscorlib.dll で発生しました。
>
>
> S2Dxoのソースを見て、下記部分をコメントアウトすると、データの移し替えも正しく行われたのですが、何か他に影響が出ますでしょうか?
>
> お忙しいところ申し訳ありませんが、よろしくお願い致します。
>
>
> -----------------------------------------------------
>
> destInfo = destType.GetProperty(targetPropertyName);
> if (destInfo != null && destInfo.CanRead && destInfo.CanWrite)
> {
>    _ConvertProperty(sourceInfo, source, dest, destInfo, existProperty);
> }
>    // 異なる場合、再帰で調査する
>
>
> ↓↓↓↓↓↓↓↓↓↓以下コメントアウトで正常動作↓↓↓↓↓↓↓↓↓
> /*
> else
> {
>    object srcValue = sourceInfo.GetValue(source, null);
>    if (srcValue != null)
>    {
>        // 変換元を調査する
>        if (srcValue.GetType().Namespace != "System")
>        {
>            AssignTo(srcValue, dest);
>        }
>            // 変換先を調査する
>        else
>        {
>                        ↓↓↓↓↓↓↓↓↓↓ここでException発生↓↓↓↓↓↓↓↓↓
>            PropertyInfo[] properties = destType.GetProperties();
>                        ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
>            foreach (PropertyInfo property in properties)
>            {
>                object destValue = property.GetValue(dest, null);
>                if (destValue != null && destValue.GetType().BaseType != typeof (ValueType) &&
>                    destValue.GetType().Namespace != "System")
>                    AssignTo(source, destValue);
>            }
>        }
>    }
> }
> */
>
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内