Chcę przechowywać dodatkowe informacje w moich wartościach Enum
i dlatego pojawiły się Atrybuty. Ponieważ chcę, aby pojedyncza właściwość nosiła 1.nn. strings
, próbowałem uczynić konstruktor atrybutów akceptującym parametr zmienny. Tak:Konstruktor ze zmiennymi parametrami klasy wywodzącej się z Atrybutu nie działa
[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false, Inherited = false)]
public class FileTypeAttribute : Attribute
{
public readonly string[] Extensions;
FileTypeAttribute(params string[] extensions)
{
this.Extensions = extensions;
}
}
Moim problemem jest to, że kiedy jestem teraz próbuje skorzystać z mojej własności mój kompilator narzeka i liści z następującym komunikatem o błędzie, który ja naprawdę nie rozumiem:
public enum EFileType
{
[FileTypeAttribute("txt")]
TEXTFILE,
[FileTypeAttribute("jpg", "png")]
PICTURE
}
daje mi:
'FileTypeAttribute' does not contain a constructor that takes '1' arguments
i 'FileTypeAttribute' does not contain a constructor that takes '2' arguments
Czy ktoś może mi powiedzieć, dlaczego tak się dzieje proszę ?
O ile dobrze pamiętam, nie ma takiej możliwości, aby wyliczać trochę więcej "java'ish". Ale jeśli brakuje mi jakiejkolwiek alternatywy, chętnie się o tym dowiem.
Jeeezu .. Co mówią o lesie i drzew. Wielkie dzięki, marnowałbym godziny :) –