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

s.o [E-MAIL ADDRESS DELETED]
2009年 9月 11日 (金) 18:46:18 JST


田中です。

インターフェースありの場合は、正常に動作しています。

調べたら、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 メーリングリストの案内