c# - 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;
}
}
当我得到我的数据时,我将它作为 List> 返回,然后映射到我的 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, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=4.0.0.0 , Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, 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
]
]