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

kubo [E-MAIL ADDRESS DELETED]
2009年 9月 11日 (金) 18:58:04 JST


久保(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 メーリングリストの案内