[seasar-dotnet:2203] 【Quill】S2Containerでインスタンスを管理するInterceptorの利用について

李 い [E-MAIL ADDRESS DELETED]
2012年 10月 19日 (金) 17:18:56 JST


$B$$$D$b$*@$OC$K$J$j$^$9!"M{$H?=$7$^$9!#(B
$B<ALd$5$;$F$$$?$@$-$^$9!#(B

$B-!(B
 Visual Studio 2010
 VB.Net
 .NetFramwork 4.0
 S2Container.NET 1.4.0 RC3

  $B:#!">e5-$N4D6-$G!"%G%b#P#G$r:n$k:GCf$G$9!#(B
AOP$B$K$D$$$F!"$3$N#U#R#L(B
(http://s2container.net.seasar.org/ja/quill.html#aop_s2) $B$NDL$j!"(B
Quill$B$+$i(BS2Container$B$G%$%s%9%?%s%9$r4IM}$9$k(BInterceptor$B$rMxMQ$7$?$$$G$9$,!"(B
<Aspect("XxxInterceptor")> $B$N$H$3$m$O%3%s%Q%$%k%(%i!<$,H/@8$7$F$7$^$$$^$7(B
$B$?!'(B
$B!V7?(B 'String' $B$NCM$r(B 'System.Type' $B$KJQ49$G$-$^$;$s!#!W(B
$B",",",",",",(B
$B<ALd(B1$B!'(BS2Container.NET 1.4.0 $B%7%j!<%:$O!"(B<Aspect("XxxInterceptor")>$B$r%5%]!<(B
$B%H$7$F$$$^$;$s$+!)(B



$B-"4D6-$O2<5-DL$jJQ99$7$?$i!"(B($B"(!'JQ992U=j(B)
 Visual Studio 2010
 VB.Net
 .NetFramwork 4.0
 S2Container.NET 1.3.18 $B"((B

$B!!%3%s%Q%$%k%(%i!<$OL5$/$J$j$^$7$?$,!"<B9T;~Nc30$,H/@8$7$^$7$?(B:
[ESSR0043]The target which Forms.S010101gForm invoked is illegal, because
System.Reflection.AmbiguousMatchException: $B$"$$$^$$$J0lCW$,8+$D$+$j$^$7$?!#(B
    $B>l=j(B System.RuntimeType.GetMethodImpl(String name, BindingFlags
bindingAttr, Binder binder, CallingConventions callConv, Type[] types,
ParameterModifier[] modifiers)
    $B>l=j(B System.Type.GetMethod(String name)
    $B>l=j(B
Castle.DynamicProxy.Builder.CodeBuilder.SimpleAST.LockBlockExpression.Emit(I
EasyMember member, ILGenerator gen)
    $B>l=j(B
Castle.DynamicProxy.Builder.CodeBuilder.SimpleAST.ExpressionStatement.Emit(I
EasyMember member, ILGenerator gen)
    $B>l=j(B
Castle.DynamicProxy.Builder.CodeBuilder.AbstractCodeBuilder.Generate(IEasyMe
mber member, ILGenerator il)
    $B>l=j(B Castle.DynamicProxy.Builder.CodeBuilder.EasyMethod.Generate()
    $B>l=j(B
Castle.DynamicProxy.Builder.CodeBuilder.AbstractEasyType.EnsureBuildersAreIn
AValidState()
    $B>l=j(B
Castle.DynamicProxy.Builder.CodeBuilder.AbstractEasyType.BuildType()
    $B>l=j(B
Castle.DynamicProxy.Builder.CodeGenerators.BaseCodeGenerator.CreateType()
    $B>l=j(B Castle.DynamicProxy.Builder.CodeGenerators.InterfaceProxyGenerator.
GenerateCode(Type[] interfaces, Type targetType)
    $B>l=j(B
Castle.DynamicProxy.Builder.DefaultProxyBuilder.CreateInterfaceProxy(Type[]
interfaces, Type type)
    $B>l=j(B Seasar.Framework.Aop.Proxy.DynamicAopProxy..ctor(Type type,
IAspect[] aspects, Hashtable parameters, Object target)
    $B>l=j(B Seasar.Framework.Aop.Proxy.DynamicAopProxy..ctor(Type type,
IAspect[] aspects, Hashtable parameters)
    $B>l=j(B Seasar.Quill.QuillComponent.CreateProxyObject(Type componentType,
Type receiptType, IAspect[] aspects)"

$B-#4D6-$O2<5-DL$jJQ99$7$?$i!"LdBj$J$/<B9T$G$-$^$9!#(B($B"(!'JQ992U=j(B)
 Visual Studio 2010
 VB.Net
 .NetFramwork 3.5$B!!!!!!(B $B"((B
 S2Container.NET 1.3.18 $B"((B

$B",",",",",",(B
$B<ALd(B2$B!'(BS2Container.NET 1.3.18 $B$O(B .NetFramwork 4.0 $B$r%5%]!<%H$7$F$$$^$;$s$+!)(B


$B<ALd(B3$B!'(B.NetFramwork 4.0$B$G(BQuill$B$+$i(BS2Container$B$G%$%s%9%?%s%9$r4IM}$9$k%3%s(B
$B%]!<%M%s%H$r(B
$B!!!!!!!!;HMQ$9$k>l9g!"$I$&$9$l$P$$$$$G$7$g$&$+!)(B


$B0J>e!"$h$m$7$/$*4j$$$$$?$7$^$9(B $B!#(B



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