是否有人通过网络服务调用使用SharePoint 来使用MonoTouch / MonoDevelop / Mono?
我能够从典型端点获取WSDL(在本例中为/_vti_bin/Lists.asmx),MonoDevelop按预期创建Reference.cs。
我修改了Reference.cs以包含“name”参数,因此所有XmyAnyElements现在看起来像: [System.Xml.Serialization.XmlAnyElement(“Any”,“”)] //名称和命名空间
虽然这可以编译,但运行时会抱怨XmlNode。很公平,我把它变成了XmlNode []所以它可能是一个数组,调用[]似乎想要。
然后构建一个GetListItemsQuery并将其传递给我的GetListItems调用: var result = svc.GetListItems(“Tasks”,null,q,null,“100”,null,null);
虽然我可以连接并获取Web服务进行响应,但所有响应都会在Any字段中返回null。
答案 0 :(得分:4)
我发现作品非常令人沮丧,但却很成功。
在Windows计算机上启动Visual Studio,启动旧式.Net 2.0 Windows窗体应用程序,并连接到相同的WSDL 。这将创建一个新的Reference.cs文件。 将该文件带入MonoTouch应用程序。
修改构造函数以使用OLD MonoTouch构造,因为.Net 2.0将无法编译。
导入的构造函数
/// <remarks/>
public Lists() {
*this.Url = global::test.Properties.Settings.Default.test_gxgvwn1_Lists; //BREAKS HERE, BY THAT'S OK!*
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
this.UseDefaultCredentials = true;
this.useDefaultCredentialsSetExplicitly = false;
}
else {
this.useDefaultCredentialsSetExplicitly = true;
}
}
MonoTouch生成(我用过这个):
public Lists() { this.Url = "http://www.mysite.com/_vti_bin/Lists.asmx"; } public Lists(string url) { this.Url = url; }
一旦更改,应用程序将编译,结果= svc.GetListItems()将实际返回XmlNodes中的数据!