Причина для этого является:
Вложенный тип аргумента является аргументом типа, который также является универсальным типом. Чтобы вызвать элемент, чья подпись содержит вложенный аргумент типа, пользователь должен создать экземпляр одного типа и передать этот тип в конструктор второго типа. Необходимая процедура и синтаксис являются сложными и их следует избегать.
Это поможет вам разработать более простой интерфейс. У вас есть 3 случая:
Вы можете попробовать:
public void Method(Dictionary<string, string> param)
и использование:
var list = new IList<Dictionary<string, string>>();
list.Add(new Dictionary<string, string>{{"key1", "value1"}, {"key2", "value2"}});
list.Add(new Dictionary<string, string>{{"key11", "value11"}, {"key22", "value22"}});
foreach(var element in list)
{
Method(element);
}
См. [Есть ли хорошие способы обхода предупреждения FxCop CA1006?] (Http://stackoverflow.com/questions/417634/are-there-any-good-workarounds-for-fxcop-warning-ca1006) – Marusyk
Также это [Альтернатива вложенному типу типа Expression>] (http://stackoverflow.com/questions/3441563/alternative-to-nested-type-of-type-expressionfunct) –
Marusyk
Вы можете создать класс, содержащий список, но я будет игнорировать это правило. –