- PR -

独自のトレースリスナーの実装に関して

1
投稿者投稿内容
コロすけ
会議室デビュー日: 2008/04/14
投稿数: 9
投稿日時: 2008-08-19 00:17
こんばんは。本を見ながらVS2003(vb.net)で独自のトレースリスナーを作成し、
アプリケーション構成ファイルからトレースリスナーコレクションに追加したのですが
以下のようなエラーメッセージが出ます。
「CustomTraceListeners.ProfileTraceListener,CustomTraceListeners の型が見つかりませんでした。」
アプリケーション構成ファイルに記述したクラスを見つけられないようなのですが
何が悪いのでしょうか?よろしくお願いいたします。
コード:

Module Module1
Sub Main()
'↓構成ファイルを削除して以下のコメントを解除した場合はうまく動作します
'Trace.Listeners.Add(New CustomTraceListeners.ProfileTraceListener)
Trace.WriteLine("test")
End Sub
End Module

Namespace CustomTraceListeners
Public Class ProfileTraceListener
Inherits TraceListener
Dim sw As New System.IO.StreamWriter("PROFILE.LOG")

Public Overloads Overrides Sub Write(ByVal message As String)
If Me.NeedIndent Then
sw.Write("[" & Now.ToString & " " & Now.Millisecond & "] ")
Me.WriteIndent()
End If
sw.Write(message)
sw.Flush()
End Sub

Public Overloads Overrides Sub WriteLine(ByVal message As String)
Me.Write(message & ControlChars.CrLf)
Me.NeedIndent = True
End Sub
End Class
End Namespace


アプリケーション構成ファイル(App.config)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name = "FileListener" type="CustomTraceListeners.ProfileTraceListener,CustomTraceListeners" />
</listeners>
</trace>
</system.diagnostics>
</configuration>



[ メッセージ編集済み 編集者: コロすけ 編集日時 2008-08-19 00:23 ]

[ メッセージ編集済み 編集者: コロすけ 編集日時 2008-08-19 00:24 ]

[ メッセージ編集済み 編集者: コロすけ 編集日時 2008-08-19 00:26 ]

[ メッセージ編集済み 編集者: コロすけ 編集日時 2008-08-19 00:41 ]
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2008-08-19 00:57
プロジェクトの設定でルート名前空間が指定されていて、トレースリスナのクラスが想定と違う名前空間になってたりしませんか?
コロすけ
会議室デビュー日: 2008/04/14
投稿数: 9
投稿日時: 2008-08-19 01:22
おっしゃるとおりでした。お恥ずかしい限りです。
ルート名前空間が「WindowsApplication2」でした。
実は最初にその点は気付いたのですが、type属性に最初「WindowsApplication2.CustomTraceListeners.ProfileTraceListener」としても
通らず、ルート名前空間は関係ないのかと思っていたのですが、先ほど「WindowsApplication2.CustomTraceListeners.ProfileTraceListener,WindowsApplication2」とすることで正常に通るようになりました。
2つ目のWindowsApplication2がいるのですね。カンマ以下が何を意味しているのか
よく調べずに悩んでいました。今もよく分かってませんが調べてみたいと思います。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)