try catch を使用せずにイベント ログの書き込みアクセス許可を検証するにはどうすればよいですか? 次の質問を読みました: Checking Event Log writing Permissions without writing a entryですが、回答ではEventLogPermissionAttribute
. 私が知る限り、これを使用して許可を検証するException
ことはできません。要求された許可がない場合はスローされます。
私のコードは次のようになります。
public void WriteMessage(string message)
{
try {
var trace = new TraceSource("MySource");
trace.TraceEvent(TraceEventType.Information, 1000, message);
} catch() {
var log = LogManager.GetLogger<MyClass>();
log.Info(message);
}
}
しかし、私はこのようなものが欲しいです:
public void WriteMessage(string message)
{
if(EventLogPermission("MySource"))
{
var trace = new TraceSource("MySource");
trace.TraceEvent(TraceEventType.Information, 1000, message);
} else {
var log = LogManager.GetLogger<MyClass>();
log.Info(message);
}
}
もちろん、最終的には大した違いはありませんが、ロジックに try catch を使用すると、単に汚れているように感じます。