C# DataTable作为Web服务asmx for SharePoint中方法的返回数据类型
我为SharePoint创建了一个web服务来返回两个值,但是我不能使用DataTable作为该方法的返回类型 如何使此方法在C# DataTable作为Web服务asmx for SharePoint中方法的返回数据类型,c#,web-services,sharepoint,C#,Web Services,Sharepoint,我为SharePoint创建了一个web服务来返回两个值,但是我不能使用DataTable作为该方法的返回类型 如何使此方法在列表中返回两个差异值(差异数据类型) [WebMethod(EnableSession=true,Description=“获取网站集中的所有网站”)] 公共列表GetAllSites(字符串InputSitecollectionUrl) { 列表w=新列表(); 使用(SPSite TargetsiteCollection=新SPSite(InputSitecollec
列表中返回两个差异值(差异数据类型)
[WebMethod(EnableSession=true,Description=“获取网站集中的所有网站”)]
公共列表GetAllSites(字符串InputSitecollectionUrl)
{
列表w=新列表();
使用(SPSite TargetsiteCollection=新SPSite(InputSitecollectionUrl))
{
SPWebCollection allWebs=TargetsiteCollection.allWebs;
foreach(所有站点中的SPWeb)
{
字符串WebUrl=web.Url;
字符串WebTitle=web.Title;
w、 添加(WebUrl);
w、 添加(网络标题);
}
}
返回w;
}
您可能需要使用列表,而不是返回列表
var w=新列表();
foreach(所有站点中的SPWeb)
{
w、 添加(新的KeyValuePair(web.Url,web.Title));
}
返回w;
您可以在KeyValuePair类型约束中指定任何适合您需要的类型。感谢您的重播,实际上我发现了另一种技术,我使用了一个数据集,这使我有机会命名返回的DataTable列。
DataSet set = new DataSet("sites");
DataTable table1 = new DataTable("site");
table1.Columns.Add("SiteUrl");
table1.Columns.Add("SiteTitle");
// Create a DataSet and put both tables in it.
using (SPSite TargetsiteCollection = new SPSite(InputSitecollectionUrl))
{
SPWebCollection allWebs = TargetsiteCollection.AllWebs;
foreach (SPWeb web in allWebs)
{
string WebUrl = web.Url;
string WebTitle = web.Title;
table1.Rows.Add(WebUrl, WebTitle);
}
set.Tables.Add(table1);
}
return set;
var w = new List<KeyValuePair<string, string>>();
foreach (SPWeb web in allWebs)
{
w.Add(new KeyValuePair<string, string>(web.Url, web.Title));
}
return w;
DataSet set = new DataSet("sites");
DataTable table1 = new DataTable("site");
table1.Columns.Add("SiteUrl");
table1.Columns.Add("SiteTitle");
// Create a DataSet and put both tables in it.
using (SPSite TargetsiteCollection = new SPSite(InputSitecollectionUrl))
{
SPWebCollection allWebs = TargetsiteCollection.AllWebs;
foreach (SPWeb web in allWebs)
{
string WebUrl = web.Url;
string WebTitle = web.Title;
table1.Rows.Add(WebUrl, WebTitle);
}
set.Tables.Add(table1);
}
return set;