我正在使用.NET C#(特别是Xamarin.Forms)。我不太了解编译器/运行时如何在幕后使用ConditionalAttribute
。
如果我有定义System.Diagnostics.ConditionalAttribute
的方法。像这样:
[System.Diagnostics.Conditional("DEBUG")]
public void LogDebug(string tag, string message, params object[] args)
{
DoSomeThing(tag, message);
SomeLogLibrary.Log($"[{tag}] {message}", args);
}
我用
来称呼它LogDebug("Log data={0}", Newtonsoft.Json.JsonConvert.SerializeObject(somedata));
问题是:SerializeObject
在DEBUG
未定义时调用了吗?
重要的是SerializeObject
或其他一些方法是否仅仅为了记录而打印出来(我认为序列化对象是一项艰苦的工作)。除非我正在调试,否则我不希望它工作。
谢谢。
答案 0 :(得分:6)