[seasar-dotnet:1473] Re: vb.netのServiceクラスについて

西山 はじめ [E-MAIL ADDRESS DELETED]
2009年 9月 11日 (金) 19:21:42 JST


お世話になっております。
西山です。

横から失礼します。
VB.NETでQuill+S2Formをフルに使ったアプリを構築してましたの 
で参考になれば。

クラスの場合は、Public かつ Overridable(C#ではvirtual)のメ 
ソッドのみAOPが適用されます。

トランザクションはAOPをかけていますので、

http://s2container.net.seasar.org/ja/quill.html#aop_notice

ここが参考になると思います。

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

[2009/09/11 18:58] kubo さんは書きました。:
> 久保(jflute)です。
> 
> ご報告ありがとうございます。
> (Overridableですか、勉強になります)
> 
> これでトランザクションがちゃんと発行されて
> いれば(ログに出ます)、OKかと思います。
> 
> C#でもvirtual付けなければ多分同じエラーが
> 発生するんじゃないかと。
> Quillが採用しているAOPの方式的に、AOPを掛けるには
> オーバーライド可能なメソッドじゃないとダメなはずなので。
> 
> 2009/9/11 s.o <[E-MAIL ADDRESS DELETED]>:
>> 田中です。
>>
>> インターフェースありの場合は、正常に動作しています。
>>
>> 調べたら、virtualはVBでは Overridable になるそうです。
>>
>>       <Transaction()> _
>>       Public Overridable Function ExecDelete(ByVal id As Integer) As Integer
>>           Dim dto As New EmployeeDto
>>           dto.Id = id
>>
>>           Return dao.DeleteData(dto)
>>       End Function
>>
>> でこれで実行したら、エラーが出なくなりました。
>>
>> これでOKですかね?
>>
>>
>>
>> kubo さんは書きました:
>>> 久保(jflute)です。
>>>
>>> 情報ありがとうございます。
>>>
>>> インターフェースありの場合は、
>>> ExecDelete()メソッドに<Transaction()>を付与しても
>>> 正常に動作しますでしょうか?
>>>
>>> また、ExecDelete()メソッドのにvirtual修飾子を
>>> 付けるとどうなりますでしょうか?
>>> (VBにvirtualあるんでしたっけ?)
>>>
>>> 2009/9/11 s.o <[E-MAIL ADDRESS DELETED]>:
>>>
>>>> 久保(jflute)さん
>>>>
>>>> お世話様です。田中です。
>>>>
>>>>
>>>>> o Serviceクラス内のどこに<Transaction()>がある場合か?
>>>>>
>>>>>
>>>> ServiceクラスのExecDeleteメソッドの上です。
>>>>
>>>>  Public Class EmployeeEditService
>>>> Inherits BaseService
>>>>
>>>> Protected dao As IEmployeeDao
>>>>
>>>> Public Sub New()
>>>> '
>>>> End Sub
>>>>
>>>> <Transaction()> _
>>>> Public Function ExecDelete(ByVal id As Integer) As Integer
>>>> Dim dto As New EmployeeDto
>>>> dto.Id = id
>>>>
>>>> Return dao.DeleteData(dto)
>>>> End Function
>>>>
>>>>
>>>>> o どのタイミングでエラーが発生するのか?
>>>>>
>>>> Formを起動するタイミングでエラーが発生します。
>>>> FormクラスでServiceクラスをDIしてるので、
>>>> Protected service As EmployeeEditService
>>>> を定義しています。
>>>> ちなみに、これを削除するとエラーが出ませんでした。
>>>>
>>>>
>>>>> o 例外スタックトレースは?(重要な部分だけでもいいので)
>>>>>
>>>> 'Seasar.Quill.Exception.QuillApplicationException' の初回例外が
>>>> Seasar.Quill.dll で発生しました。
>>>> Lgn00.Forms.FrmLgn001: ERROR 2009-09-11 17:54:12,703 [10] 予期できないエ
>>>> ラーが発生しました。詳細を確認してください。([EQLL0036]It failed in the
>>>> instance generation of component FrmEmployEdit. Please confirm
>>>> processing and the access qualifier, etc. among constructors.)
>>>>
>>>> これで分かりますか?
>>>>
>>>>
>>>> kubo さんは書きました:
>>>>
>>>>> 久保(jflute)です。
>>>>>
>>>>> 田中さん、こんにちは
>>>>>
>>>>> o Serviceクラス内のどこに<Transaction()>がある場合か?
>>>>> o どのタイミングでエラーが発生するのか?
>>>>> o 例外スタックトレースは?(重要な部分だけでもいいので)
>>>>>
>>>>> というような具体的な情報をもう少し頂けると助かります。
>>>>>
>>>>> 2009/9/11 s.o <[E-MAIL ADDRESS DELETED]>:
>>>>>
>>>>>
>>>>>> お世話様です。田中です。
>>>>>>
>>>>>> VB.NETのサンプルのServiceクラスが、インターフェースクラスと実装クラスで
>>>>>> 構成されていますが、
>>>>>> 実装クラスのみで作成使用と考え、 <Implementation()>を付けて実装したところ
>>>>>> 動くことを確認しました。
>>>>>>
>>>>>> Namespace Service
>>>>>> <Implementation()> _
>>>>>> Public Class EmployeeListService
>>>>>> Inherits BaseService
>>>>>>
>>>>>> End Class
>>>>>> End Namespace
>>>>>>
>>>>>> ところが、Serviceクラス内に<Transaction()>の記述があると
>>>>>> [EQLL0036]It failed in the instance generation of component
>>>>>> FrmEmployEdit.
>>>>>> Please confirm processing and the access qualifier, etc. among
>>>>>> constructors.
>>>>>> のエラーが出ます。
>>>>>>
>>>>>> どのように回避すればよいのでしょうか?
>>>>>> すみませんがご教授下さい。
>>>>>>
>>>>>> よろしくお願い致します。
>>>>>>
>>>>>> _______________________________________________
>>>>>> seasar-dotnet mailing list
>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> seasar-dotnet mailing list
>>>>> [E-MAIL ADDRESS DELETED]
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>
>>>>>
>>>>>
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>
>>>>
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> 
> 
> 


-- 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
株式会社フジミック 
        システム開発センター ソフトウェア開発部
 西山 創
[E-mail]:[E-MAIL ADDRESS DELETED]
 
〒140-0002 東京都品川区東品川3-32-42 フジテレビ別館7階
[TEL]:03-5495-1060
++++++++++++++++++++++++++++++++++++++++++++++++++++++++



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