【问题标题】:Cannot implicitly convert type 'ArrayofString' to 'string[]' in Console Application无法在控制台应用程序中将类型“ArrayofString”隐式转换为“string[]”
【发布时间】:2014-06-27 08:49:19
【问题描述】:

在 WCF 项目中,我使用 string[] 函数并通过添加服务引用从控制台应用程序调用该 string[] 函数。但显示错误:

无法在控制台应用程序中将类型“ArrayofString”隐式转换为“string[]”。

如果我重新创建服务引用,有时我无法解决这个问题,它会显示如上所述的错误。下面给出示例代码

public string[] SET_PROV_FROM_INVOICE(int type, int cust_id, int PLAN_ID, 
                    string INVOICE_ID, string IN_PARAMETER, string IN_FLD_ACTION,
                    string GET_VALUE, ref string RTN_VALUE) // invoice_id = Customer invoice table id , Cust_ID = Customer ID, type = 4  for Prov TagK
{
   System.Collections.ArrayList PROV_result = new System.Collections.ArrayList();
   return PROV_result.ToArray(typeof(string)) as string[];
}

string[] ret_prov_tag = obj.SET_PROV_FROM_INVOICE(4, Convert.ToInt32(cust_id), 0, 
                                                  IN_FLD_INVOICE_ID, "", "Create", 
                                                  SET_VALUE, ref Prov_Rtn);

【问题讨论】:

  • 但是您所指的服务引用调用在哪里?
  • 在控制台应用程序中使用 obj 调用该函数的最后一行
  • 但是这段代码可以编译,一定有什么你没有告诉我们的。 PROV_result 是否来自服务调用?
  • 最后一行,服务引用项目函数,内部函数添加数组列表中的值,最后通过转换数组列表返回字符串[]

标签: c# wcf console-application


【解决方案1】:

您应该使用ToArrayArrayOfString 转换为string[]

string[] ret_prov_tag = obj.SET_PROV_FROM_INVOICE(...).ToArray();

【讨论】:

    猜你喜欢
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    相关资源
    最近更新 更多