Return Web 服务输出中数据旁边的 DataTable 架构
Return DataTable schema beside data, in web service output
我使用 C# 编写了一个 Web 服务,它将在 java 应用程序中使用。
只是我 return 一个 Dataset
里面有一个或多个 DataTable
。输出为 XML 格式。
现在消费者需要有输出的架构 table 才能知道 table 和字段名称。
这是网络方法:
[WebMethod]
public DataSet GetWorkTypes(string UserName, string Password)
{
DataSet ds = new DataSet("CNIS");
try
{
if (User Pass is Correct)
{
SqlDataAdapter adapter = new SqlDataAdapter("some query", "connectionString");
adapter.Fill(ds, "theTable");
return ds;
}
else
{
ds.Tables.Add("theTable");
ds.Tables["theTable"].Columns.Add("Error");
ds.Tables[0].Rows.Add("Wrong User Pass!");
return ds;
}
}
catch (Exception ex)
{
ds.Tables.Add("theTable");
ds.Tables["theTable"].Columns.Add("Error");
ds.Tables[0].Rows.Add(ex.Message);
return ds;
}
}
如何更改我的代码来执行此操作?
编辑:
我希望输出与此不同:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetWorkTypesResponse xmlns="http://cnis/">
<GetWorkTypesResult>
<xsd:schema>schema</xsd:schema>xml</GetWorkTypesResult>
</GetWorkTypesResponse>
</soap12:Body>
</soap12:Envelope>
我需要一些更具描述性的内容。
你可以给他样本 xml 数据,他会 recieving.For 就像这样在浏览器中给出你的网络服务的路径:
www.yourdomain.com/yourwebservice.asmx
您将在您的 service.click 中获得 Web 方法列表,以调用其中任何一个并提供所需的参数(如果有),您将获得 xml 数据。
实际上,这是受@John Saunders 评论启发对我的问题的回答。当 Web 服务使用者是 java 客户端、JQuery 或非 dotNet 客户端时,这不是传递 .NET 特定数据类型(如 DataSet
.[=11)的标准方式=]
所以我使用 MVC Web API 技术来完成这项工作!没有必要强制使用 MVC ,但它提供了一些很好的功能来为 web 方法生成帮助和文档。
我使用 C# 编写了一个 Web 服务,它将在 java 应用程序中使用。
只是我 return 一个 Dataset
里面有一个或多个 DataTable
。输出为 XML 格式。
现在消费者需要有输出的架构 table 才能知道 table 和字段名称。
这是网络方法:
[WebMethod]
public DataSet GetWorkTypes(string UserName, string Password)
{
DataSet ds = new DataSet("CNIS");
try
{
if (User Pass is Correct)
{
SqlDataAdapter adapter = new SqlDataAdapter("some query", "connectionString");
adapter.Fill(ds, "theTable");
return ds;
}
else
{
ds.Tables.Add("theTable");
ds.Tables["theTable"].Columns.Add("Error");
ds.Tables[0].Rows.Add("Wrong User Pass!");
return ds;
}
}
catch (Exception ex)
{
ds.Tables.Add("theTable");
ds.Tables["theTable"].Columns.Add("Error");
ds.Tables[0].Rows.Add(ex.Message);
return ds;
}
}
如何更改我的代码来执行此操作?
编辑:
我希望输出与此不同:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetWorkTypesResponse xmlns="http://cnis/">
<GetWorkTypesResult>
<xsd:schema>schema</xsd:schema>xml</GetWorkTypesResult>
</GetWorkTypesResponse>
</soap12:Body>
</soap12:Envelope>
我需要一些更具描述性的内容。
你可以给他样本 xml 数据,他会 recieving.For 就像这样在浏览器中给出你的网络服务的路径:
www.yourdomain.com/yourwebservice.asmx
您将在您的 service.click 中获得 Web 方法列表,以调用其中任何一个并提供所需的参数(如果有),您将获得 xml 数据。
实际上,这是受@John Saunders 评论启发对我的问题的回答。当 Web 服务使用者是 java 客户端、JQuery 或非 dotNet 客户端时,这不是传递 .NET 特定数据类型(如 DataSet
.[=11)的标准方式=]
所以我使用 MVC Web API 技术来完成这项工作!没有必要强制使用 MVC ,但它提供了一些很好的功能来为 web 方法生成帮助和文档。