我想在类上使用条件属性,或者更重要的是,有什么能够产生这种效果吗?基本上我不希望类在调试模式下存在。我也不想在#if DEBUG
指令中包装每个调用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace NameSpace
{
[Conditional("Debug")]
public class ClassName
{
public ClassName()
{
}
}
}
答案 0 :(得分:11)
不,没有。条件属性不会使它们的目标自行消失 - 它们只会使编译器省略目标的用户。
Eric Lippert今天有一个post on just this sort of thing。阅读它,看看它对你来说是否更有意义。
如果确实需要在发布模式下省略类本身,那么使用预处理器指令 - 但是你也必须对所有调用者也这样做。无论如何,它有什么危害让课程处于发布模式?
这实际上可能是不同项目中的一个类吗?如果是这样,然后你可以将条件属性应用于所有方法,那么在发布模式下就不需要这种类型,所以你可以避免运送程序集。
答案 1 :(得分:0)
不确定,如果我对此有正确的理解。
但是,如果使用ConditionalAttribute修饰所有方法 - 当符号不存在时,将删除所有方法。因此,虽然该类可供使用,但在运行时不会有任何方法将其用于。
我不确定,为什么你想根据符号排除一个类? 你能解释一下情景吗?