gpt4 book ai didi

c# - 为什么使用错误的方法签名生成 Reference.cs(WCF 服务引用)

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:06 26 4
gpt4 key购买 nike

我得到的错误是:

Argument 2: cannot convert from 'System.Tuple[]' to 'Tester.CommService.TupleOfstringSqlDbTypeanyTypep2GUUk_Sk[]'

来自以下内容:

CommService.CommServiceClient client = new CommService.CommServiceClient();
Tuple<string, System.Data.SqlDbType, object>[] parameters = new Tuple<string, System.Data.SqlDbType, object>[] {
new Tuple<string, System.Data.SqlDbType, object>(
paramName,
System.Data.SqlDbType.Int,
projectid)};
client.Open();
string myValue = client.getScalar(procName, parameters);
client.Close();

实际的方法签名是:

string getScalar(string procedure, IEnumerable<Tuple<string, SqlDbType, object>> parameters);

我已经尝试删除服务引用并重新添加它。

我还尝试配置服务引用,取消选中“在引用的程序集中重用类型”选项,然后更新服务引用。

我试过使用以下方法,但它也会产生相同的错误。

CommService.ICommService service = new CommService.CommServiceClient();
CommService.getScalarRequest request = new CommService.getScalarRequest(procName, parameters);
service.getScalar(request);

我注意到 Reference.cs 还包含以下内容:

// CODEGEN: Parameter 'getScalarResult' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'.

我已经在其他项目中使用了这个服务引用和相同的方法,没有任何问题。

最佳答案

当您生成服务引用时,您可以选择在引用的程序集中重用类型。检查此选项是否已启用。

右键单击服务引用,选择配置服务引用...,勾选Reuse types in referenced assemblies并选择Reuse types in all referenced assemblies strong>,然后单击确定

此外,@marc_s 的评论是正确的——您应该避免使用内置的 .NET 类型(它们不是 native XML 类型)——但前提是您希望服务可互操作(即可用于非 WCF 客户端) .

关于c# - 为什么使用错误的方法签名生成 Reference.cs(WCF 服务引用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38701764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com