[seasar-dotnet:2264] S2Container.NET1.4.0のDynamicAopProxyのCreate内の条件について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2013年 4月 5日 (金) 16:52:09 JST


こんにちは。井上です。

Seasar.Framework.Aop.Proxy.DynamicAopProxyについて
個人的には実害はないですが、たまたま気づいたことがあったので、投稿させてい
ただきます。

ソースの172行目から189行目の以下の部分です。
---- 引用開始  ----
172 public object Create(Type receiptType, object target)
173 {
174     if (receiptType.IsInterface && target.GetType() == typeof(object))
175     {
176         if (target.GetType() == typeof(object))
177         {
178             return 
_generator.CreateInterfaceProxyWithoutTarget(receiptType, _interceptors);
179         }
180         else
181         {
182             return 
_generator.CreateInterfaceProxyWithTarget(receiptType, target, 
_interceptors);
183         }
184     }
185     else
186     {
187         return _generator.CreateClassProxy(_componentType, 
_interceptors);
188     }
189 }
---- 引用終了 ----

最初のif文(174行目)に && target.GetType() == typeof(object)があり
176行目で条件がかぶっているので182行目の
_generator.CreateInterfaceProxyWithTarget(receiptType, target, 
_interceptors)
が呼び出されるパターンが無い結果になると思われます。
文脈的には、174行目のGetTypeの比較が不要なのかな?と思います。

ちなみにS2Container.NETのバージョンは1.4.0です。

では。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20130405/e285d946/attachment.html>


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