[seasar-dotnet:2242] S2Dxoのスレッドセーフについて

寺嶋 千晴 [E-MAIL ADDRESS DELETED]
2013年 2月 26日 (火) 16:38:12 JST


お世話になっております。寺嶋です。

全開、S2Dxo.netについてご教授いただきありがとうございました。
今回もS2Dxo.netについて教えていただきたいことがあり投稿させて頂きました。

データが格納されているオブジェクトをS2Dxoにて相互変換を行なっていますが
DxoInterceptor内でKeyNotFoundExceptionが発生してしまいました。
調査をしてみたところDxoInterceptor.csのDxoMappingから情報を取得する際
例外が発生したようです。

今回ASP.NETで開発しており、DxoをQuill管理にすることでsingletonになり
DxoMappingが複数のスレッドから操作され例外が発生したものと思われます。
DxoInterceptorをスレッドセーフに使用する方法がありますでしょうか?

以上、よろしくお願いいたします。

---- エラー内容 ----
System.Collections.Generic.KeyNotFoundException: 指定されたキーはディレクトリ内に存在しませんでした。
   場所 System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   場所 Seasar.Dxo.Interceptor.DxoInterceptor._ConvertProperty(PropertyInfo sourceInfo, Object source, Object dest, PropertyInfo destInfo, Boolean existProperty)
   場所 Seasar.Dxo.Interceptor.DxoInterceptor._TryExchangeSameNameProperty(PropertyInfo sourceInfo, Object source, Object dest, Type destType, Int32 cnt)
   --- 内部例外スタック トレースの終わり ---
   場所 Seasar.Dxo.Interceptor.DxoInterceptor._TryExchangeSameNameProperty(PropertyInfo sourceInfo, Object source, Object dest, Type destType, Int32 cnt)
   --- 内部例外スタック トレースの終わり ---
   場所 System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
   場所 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   場所 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)




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