6

エンタープライズライブラリのv5から始めたばかりですが、奇妙な問題が発生しているようです。いつものように、私はロギングから始めました。必要な参照を追加して、次のコードを実行します。

Logger.Write("test");

これまでのところ特別なことは何もありません。出力を確認すると、非常に奇妙な問題が見つかりました。コードが最初に呼び出され、必要なすべてのライブラリがロードされると、例外があるようです...

A first chance exception of type 'System.Threading.SynchronizationLockException' occurred in Microsoft.Practices.Unity.dll
A first chance exception of type 'System.Threading.SynchronizationLockException' occurred in Microsoft.Practices.Unity.dll

私はcought例外をオンにして作業しているので、これは非常に面倒です。それが何であるか、またはそれを取り除く方法について何か考えはありますか?

さらに、トレースリスナーを追加して、すべてのログをVS出力に出力したいと思います。ただし、「System Diagnostings Trace Listener」はフォーマッタをサポートしていないため、出力がフラッディングするようです。この非常に基本的なタスクを実行するには、(v3で行っていたように)カスタムリスナーを作成する必要がありますか?

4

3 に答える 3

4

SynchronizationLockExceptionを交換して問題を解決しましたUnityDefaultBehaviorExtensionUnityがSynchronizationLockExceptionを常にスローしないようにすることはできますか?を参照してください。

于 2011-01-02T16:12:21.410 に答える
3

これを修正しました。nugetを介して最新バージョンを確認してください。

于 2012-08-02T21:52:00.747 に答える
1

私は「解決策」を見つけました。この投稿を考慮して、エンタープライズライブラリのUnity部分に問題があります。すべてのコンポーネントはUnityを使用して構築されているため、常にこれらの例外が発生します。したがって、「解決策」は、SynchronizationLockExceptionの中断を無効にすることです。これは、通常、処理された例外の中断をオンにする例外設定メニューを介して行われます。

于 2010-11-15T10:27:00.767 に答える