System.InvalidOperationException: "Тип System.Collections.Generic.List`1 нельзя использовать в этом контексте".
У меня есть asmx, который возвращает данные клиенту. В asmx у меня есть следующий метод:
[WebMethod]
[XmlInclude(typeof(CustomField))]
public List<CustomField> GetData(InitializeRequest request)
{
return xmlAccessLogic.GetData(request.Map()).Map();
}
CustomField- это пользовательский тип, который я создаю. На данный момент это выглядит следующим образом:
public class CustomField: Object
{
public string Key { get; set; }
public object Value { get; set; }
public CustomField()
{
}
public CustomField(string key, object value)
{
Key = key;
Value = value;
}
}
Когда я получаю свои данные, я возвращаю их в виде списка>, который затем сопоставляется со списком моего объекта CustomField.
Когда я делаю следующее, я получаю сообщение об ошибке:
List<KeyValuePair<string, Object>> clientcollection = new List<KeyValuePair<string, Object>>();
List<KeyValuePair<string, Object>> companiesCollection = new List<KeyValuePair<string, Object>>();
companiesCollection.Add(new KeyValuePair<string, Object>("Count", 1));
companiesCollection.Add(new KeyValuePair<string, Object>("HitsLeft", _hbXmlAccessRepository.GetNumberOfHitsLeft(request.UserName, request.PassWord)));
clientcollection.Add(new KeyValuePair<string, Object>("Vat", generalDataResult.VatNumber));
companiesCollection.Add(new KeyValuePair<string, Object>("firm", clientcollection));
return companiesCollection;
Когда я не добавляю clientCollection в companiesCollection, все работает нормально, и мое клиентское приложение получает данные. Когда я добавляю clientCollection, я получаю исключение. Исключение, которое я получаю, следующее:
System.InvalidOperationException: 'Тип System.Collections.Generic.List
1[[System.Collections.Generic.KeyValuePair
2 [[System.String, mscorlib, Версия =4.0.0.0, Культура = нейтральный, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Версия =4.0.0.0, Культура = нейтральный, PublicKeyToken=b77a5c561934e089]], mscorlib, Версия =4.0.0.0, Culture= нейтральный, PublicKeyToken = b77a5c561934e089]] нельзя использовать в этом контексте.'
Что я забыл? Я смотрю вокруг и читаю, но пока не нашел решения.
(Я знаю, что мой CustomField-объект выглядит как KeyValuePair, но мы только начали, и к нему будут добавлены дополнительные поля)
То, что ожидает клиентский программист, может выглядеть следующим образом:
CompaniesCollection[
Count="1"
HitsLeft="248"
firm[
Vat=423584152
Name= "Some Name"
JurFormID=14
]
firm[
Vat=42358468
Name= "Some Other Name"
JurFormID=14
]
]