Log4NetとObjectDumperを使ってオブジェクトをダンプする実験を少し行いました。
私のブログの記事をチェックアウト:Logging Complete Objects with Log4Net
基本的にあなたがあなた自身のIObjectRendererを作成し、それを設定し、次にあなたができるだけでlog.Debug(yourObject)
public class Log4NetObjectLogger : IObjectRenderer
{
public void RenderObject(RendererMap rendererMap, object obj, TextWriter writer)
{
var ex = obj as Exception;
//if its not an exception, dump it. If it's an exception, log extended details.
if (ex == null)
{
//by default log up to 10 levels deep.
ObjectDumper.Write(obj,10,writer);
}
else
{
while (ex != null)
{
RenderException(ex, writer);
ex = ex.InnerException;
}
}
}
private void RenderException(Exception ex, TextWriter writer)
{
writer.WriteLine(string.Format("Type: {0}", ex.GetType().FullName));
writer.WriteLine(string.Format("Message: {0}", ex.Message));
writer.WriteLine(string.Format("Source: {0}", ex.Source));
writer.WriteLine(string.Format("TargetSite: {0}", ex.TargetSite));
RenderExceptionData(ex, writer);
writer.WriteLine(string.Format("StackTrace: {0}", ex.StackTrace));
}
private void RenderExceptionData(Exception ex, TextWriter writer)
{
foreach (DictionaryEntry entry in ex.Data)
{
writer.WriteLine(string.Format("{0}: {1}", entry.Key, entry.Value));
}
}
}
、あなたが見つかった拡張子は、基本的にはzipファイルで、あなたが内容を抽出、.zipファイルに拡張子を変更することができ、チャンス11へのバージョン(それのXML内のVSIXファイルで)、rezip、エクステンションを元に戻して2012年にインストールしてください。これは必ずしも機能するとは限りませんが、一発の価値があり、時間を節約できます。 – JMK
それは素晴らしい考えです!私はプラグインを変換することができましたが、メニューでそれをクリックするとVSがクラッシュします。 – northben
とにかく価値のあることに、私はMVVM in the Boxと同じ問題を抱え、2010年のインストールが終了しました! – JMK