У меня было счастливое решение, и я добавил этот атрибут:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = false, Inherited = true)]
public class metadata : Attribute
{
string mid;
string mdescription;
Dictionary<string, string> mdata;
public string id
{
get
{
return mid;
}
}
public string description
{
get
{
return mdescription;
}
}
public Dictionary<string, string> data
{
get
{
return mdata;
}
}
public metadata(string thisid, string thisdescription, params KeyValuePair<string, string>[] thisdataarray)
{
mid = thisid;
mdescription = thisdescription;
mdata = new Dictionary<string, string>();
if (thisdataarray != null)
{
foreach (KeyValuePair<string, string> thisvaluepair in thisdataarray)
{
mdata.Add(thisvaluepair.Key, thisvaluepair.Value);
}
}
}
}
Я добавил несколько объявлений этого атрибута, все [метаданные (ноль, ноль)] без ошибок.Каким-то образом, когда я компилирую, для каждого [metadata (null, null)] возникает «ошибка CS0182: аргумент атрибута должен быть константным выражением, выражением typeof или выражением создания массива типа параметра атрибута», однако без строки или столбцаили файл, только проект.Что пошло не так?Спасибо.