Рассмотрим ниже код:Как добавить атрибут свойство Const значения
[Category("USER")]
public class Permissions
{
public const string Create= "USER-CREATE";
public const string Edit= "USER-EDIT";
.
.
}
Я хочу, чтобы удалить USER-
часть из константных значений, потому что я указать его Category
атрибута. В этом случае есть ли способ получить значение USER-CREATE
, когда я звоню Permissions.Create
? Если нет, как достичь такой же функциональности с другим подходом?
Редактировать
Я должен использовать константные значения, потому что я буду использовать с атрибутом.
Например: [Attribute(Permissions.Create)]
Редактировать мой реальный случай
Новый код после @HimBromBeere предложить
[Permissions(Modules.Administration, HomePermissions.Category)]
public class UserPermissions
{
private const string Category = "USER";
private const string Prefix = Modules.Administration + "-" + Category + "-";
public const string Create = Prefix + "CREATE";
public const string Edit = Prefix + "EDIT";
}
Вы не можете изменить значение 'const', поэтому его называют константой. Но я не уверен, что именно ты хочешь. Вы хотите, чтобы t удалял '' USER ''из константы, но все еще получал' 'USER-CREATE' 'при * доступе * к этой константе? Вам нужно было бы связать имя категории (прочитанное от атрибута) с помощью 'const', который звучит немного для меня. – HimBromBeere
Если у вас есть постоянные значения, на которые ссылаются другие сборки, лучше использовать 'static readonly', потому что если вы используете' const', тогда значение может быть встроено во время компиляции зависимой сборки, что может привести к непреднамеренные последствия. Используйте только 'public const' *, если вам действительно нужно * (например, для использования в конструкторах атрибутов). – Dai