Skip to content

Commit b95e924

Browse files
committed
Fix #50
1 parent b883c28 commit b95e924

4 files changed

Lines changed: 34 additions & 3 deletions

File tree

‎AddInManager/App.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public Result OnStartup(UIControlledApplication application)
3737
#if !(R25 || R26 || R27)
3838
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
3939
#endif
40+
CodeListener.EnsureRegistered();
4041
CreateRibbonPanel(application);
4142
application.ControlledApplication.DocumentClosed += DocumentClosed;
4243
DefaultSetting.Version += VersionChecker.CurrentVersion;

‎AddInManager/Command/AddInManagerCommand.cs‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ public class AddInManagerManual : IExternalCommand
1111
{
1212
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
1313
{
14-
Trace.Listeners.Clear();
15-
CodeListener codeListener = new CodeListener();
16-
Trace.Listeners.Add(codeListener);
14+
CodeListener.EnsureRegistered();
1715
StaticUtil.RegenOption = RegenerationOption.Manual;
1816
StaticUtil.TransactMode = TransactionMode.Manual;
1917
Result result = AddinManagerBase.Instance.ExecuteCommand(commandData, ref message, elements, false);

‎AddInManager/Model/CodeListener.cs‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@ namespace RevitAddinManager.Model;
55

66
public class CodeListener : TraceListener
77
{
8+
private static readonly object SyncRoot = new object();
9+
10+
public static void EnsureRegistered()
11+
{
12+
lock (SyncRoot)
13+
{
14+
if (Trace.Listeners.OfType<CodeListener>().Any())
15+
{
16+
return;
17+
}
18+
19+
Trace.Listeners.Add(new CodeListener());
20+
Trace.AutoFlush = true;
21+
}
22+
}
23+
824
public override void Write(string message)
925
{
1026
WriteMessage(message);

‎Test/DebugTraceCommnad.cs‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System.Diagnostics;
2+
using Autodesk.Revit.Attributes;
3+
using Autodesk.Revit.DB;
4+
using Autodesk.Revit.UI;
5+
6+
namespace Test;
7+
8+
[Transaction(TransactionMode.Manual)]
9+
public class DebugTraceCommnad : IExternalCommand
10+
{
11+
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
12+
{
13+
Trace.Write("hello");
14+
return Result.Succeeded;
15+
}
16+
}

0 commit comments

Comments
 (0)