提问人:Uuuuuumm 提问时间:10/26/2023 最后编辑:Uuuuuumm 更新时间:10/26/2023 访问量:31
如何修复WCF引用上的“尝试将元素作为与数组不兼容的类型进行访问”错误?
How can I fix this 'Attempted to access an element as a type incompatible with the array.' error on my WCF Reference?
问:
我得到了一个 WSDL,并使用 Visual Studio 的 SVCUtil 工具生成了一个客户端引用。 我正在使用 .net Core 6。
此生成的函数引发异常:
private static Binding GetBindingForEndpoint()
{
CustomBinding result = new();
result.Elements.Add(new TextMessageEncodingBindingElement(){
MessageVersion = MessageVersion.CreateVersion(System.ServiceModel.EnvelopeVersion.Soap12, AddressingVersion.None)
});
HttpsTransportBindingElement httpsBindingElement = new()
{
AllowCookies = true,
MaxBufferSize = int.MaxValue,
MaxReceivedMessageSize = int.MaxValue
};
result.Elements.Add(httpsBindingElement);
return result;
}
这似乎是一个低级问题,我不确定原因是什么,但“结果”行。Elements.Add(httpsBindingElement);' 引发错误
例外:
System.ArrayTypeMismatchException:“尝试将元素作为与数组不兼容的类型进行访问。
This exception was originally thrown at this call stack:
System.Collections.Generic.List<T>.Insert(int, T) in List.cs
System.Collections.ObjectModel.Collection<T>.Add(T) in Collection.cs
MyService.MyServiceOrderServicesSoapClient.GetBindingForEndpoint() in Reference.cs
MyService.MyServiceOrderServicesSoapClient.MyServiceOrderServicesSoapClient(MyService.MyServiceOrderServicesSoapClient.EndpointConfiguration) in Reference.cs
MyProject.Services.API_Tools.MyServiceAPITools.GetVR() in MyServiceAPITools.cs
注意事项:
- 结果。Elements 是 List<BindingElement>。
- HttpsTransportBindingElement 和 TextMessageEncodingBindingElement 是 BindingElement 的子类
我对错误的理解是,它无法将 HttpsTransportBindingElement 插入到 List<BindingElements 中>因为类型不正确,即使它是列表类型的子类。
答: 暂无答案
评论