Я хочу использовать условный атрибут для класса, или более того, есть ли что-то, что дает этот эффект? В принципе, я не хочу, чтобы класс находился в режиме отладки. Я также не хочу, чтобы обернуть каждый вызов в директиве #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()
{
}
}
}
Ответ 1
Нет, нет. Условные атрибуты не приводят к тому, что их цели исчезают сами собой - они просто заставляют компилятор пропускать пользователей целей.
Сегодня у Эрика Липперта была публикация только такого рода. Прочтите его и посмотрите, все ли имеет для вас смысл.
Если вам действительно нужно опустить сам класс в режиме выпуска, используйте директивы препроцессора - но вам придется делать то же самое и для всех вызывающих. Какой вред он должен поддерживать класс в режиме выпуска?
Может ли это быть классом в другом проекте? Если это так, тогда вы можете просто применить условный атрибут ко всем методам, тогда тип не понадобится в режиме деблокирования, поэтому вы можете избежать доставки сборки.
Ответ 2
Не уверен, если я правильно понимаю это.
Но, если вы украшаете все методы с помощью ConditionalAttribute - все это будет удалено, если символ отсутствует. И, следовательно, хотя класс доступен для использования, во время выполнения не будет никаких методов для его использования.
Я не уверен, почему вы хотели бы исключить класс в зависимости от символа?
Не могли бы вы объяснить сценарий?