我想在一个类上使用条件属性,或者更重要的是,有什么能够产生这种效果吗?基本上我不希望类在调试模式下存在。我也不想把每个电话都换成一个 #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()
{
}
}
}
不,没有。条件属性不会使它们的目标自行消失 - 它们只是使编译器省略 用户 目标。
Eric Lippert有一个 发表这类事情 今天,它发生了。阅读它,看看它是否对你更有意义。
如果你 真 需要在发布模式下省略类本身,然后使用预处理器指令 - 但是你也必须对所有调用者也这样做。无论如何,它有什么危害让课程处于发布模式?
这实际上可能是一个不同项目的课程吗?如果是这样, 然后 您可以将条件属性应用于所有方法,然后在发布模式下不需要该类型,因此您可以避免运送程序集。
不,没有。条件属性不会使它们的目标自行消失 - 它们只是使编译器省略 用户 目标。
Eric Lippert有一个 发表这类事情 今天,它发生了。阅读它,看看它是否对你更有意义。
如果你 真 需要在发布模式下省略类本身,然后使用预处理器指令 - 但是你也必须对所有调用者也这样做。无论如何,它有什么危害让课程处于发布模式?
这实际上可能是一个不同项目的课程吗?如果是这样, 然后 您可以将条件属性应用于所有方法,然后在发布模式下不需要该类型,因此您可以避免运送程序集。
不确定,如果我对此有正确的理解。
但是,如果使用ConditionalAttribute修饰所有方法 - 当符号不存在时,将删除所有方法。因此,尽管该类可以使用,但在运行时不会有任何方法可以使用它。
我不确定,为什么你会想要根据符号排除一个类?
你能解释一下情景吗?