我在一个项目中使用了几个类库,其中一个是典型的“project.common.dll”库,其中包含一些常见的帮助函数。其中一个函数是创建调试输出的调试函数。现在我想通过使用用户级属性(应用程序设置)来启用/禁用调试输出。如何在此类库中引用主应用程序的 program.cs 中定义的变量?
更新:谢谢大家。我可能会在我的基础应用程序中创建一个静态方法来执行检查(是否调试),然后调用公共库中的调试函数。
我在一个项目中使用了几个类库,其中一个是典型的“project.common.dll”库,其中包含一些常见的帮助函数。其中一个函数是创建调试输出的调试函数。现在我想通过使用用户级属性(应用程序设置)来启用/禁用调试输出。如何在此类库中引用主应用程序的 program.cs 中定义的变量?
更新:谢谢大家。我可能会在我的基础应用程序中创建一个静态方法来执行检查(是否调试),然后调用公共库中的调试函数。
你不能。
您需要做的是在类库本身中拥有属性,当您在主应用程序中创建它的实例时,将用户设置传入:
var debug = new DebugInstance { Output = this.Output };
或设置参数,如果它是一个静态类:
StaticDebug.Output = this.Output;
您可以使用ConditionalAttribute:
[Conditional("DEBUG")]
public static void WriteDebugInfo()
{
Trace.WriteLine("what ever...")
}
这样,当您在 Debug 模式下构建时,会调用该方法;在发布模式下没有。
在 Debug 类的构造函数上使用参数(如果类是静态的,则使用静态构造函数)。