Aldoni la webreference al la Listoj.Asmx en sharepoint ejo.
Http://Localhost/_vti_ujaj/Listoj.Asmx
(SharePoint virtuala Adresara URL/_vti_ujaj/Listoj.Asmx
Skribi la sekvantajn metodojn en via webservice.
Privata datumo.DataTable GetDataTableFromWSS(Bool onlySchema)
{
Ŝnuro WssSiteUrl = http://192.168.111.21;
Ŝnuro WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Listoj enlistigas = novan WssSite.Listoj();
Listoj.Url = WssSiteUrl + “_Vti_ujaj/Listoj.Asmx”;
Listoj.Credentials = Sistemo.Reto.CredentialCache.DefaultCredentials;
Listoj.PreAuthenticate = vera;
//Vi devi pasi la Listan Nomon ĉi tie
Laĉi CommandText = “Dungito Info”;
XmlNode ListCollectionNode = listoj.GetListCollection();
XmlElement Listo = (XmlElement)ListCollectionNode.SelectSingleNode(Ŝnuro.Formato(“Wss:Listo[@Titoli='{0}?]”, CommandText), NameSpaceMgr);
Se (Enlistigi == null)
{
Ĵeti novan ArgumentException(Ŝnuro.Formato(“La listo {0} Ne povus esti trovita en la ejo {1}”, CommandText, WssSiteUrl));
}
Laĉi TechListName = Listo.GetAttribute(“Nomo”);
Datumoj.DataTable rezultas = novan datumon.DataTable(“Listo”);
XmlNode ListInfoNode = listoj.GetList(TechListName);
Sistemo.Teksto.StringBuilder fieldRefs = nova Sistemo.Teksto.StringBuilder();
Sistemo.Kolektoj.Hashtable DisplayNames = nova Sistemo.Kolektoj.Hashtable();
Foreach (XmlElement Kampo en ListInfoNode.SelectNodes(“Wss:Kampoj/wss:Kampo”, NameSpaceMgr))
{
Se (Kampo.HasChildNodes)
{
Foreach (XmlElement Fld en Kampo.SelectNodes(“Wss:Kampoj/wss:Kampo”, NameSpaceMgr))
{
Ŝnuro FieldName = Fld.GetAttribute(“Nomo”);
Ŝnuro FieldDisplayName = Fld.GetAttribute(“DisplayName”);
Se (Rezulto.Kolumnoj.Enhavas(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
Rezulto.Kolumnoj.Aldonas(FieldDisplayName, TypeFromField(Kampo));
FieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Aldonas(FieldDisplayName, FieldName);
}
}
Alia
{
Laĉi FieldName = Kampo.GetAttribute(“Nomo”);
Laĉi FieldDisplayName = Kampo.GetAttribute(“DisplayName”);
Se (Rezulto.Kolumnoj.Enhavas(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
Rezulto.Kolumnoj.Aldonas(FieldDisplayName, TypeFromField(Kampo));
FieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Aldonas(FieldDisplayName, FieldName);
}
}
Se (OnlySchema) Revena rezulto;
XmlElement kaptas = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
Kampoj.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = listoj.GetListItems(TechListName, “”, Null, Kampoj, “1000000”, Null);
// Lookup kaptas ĉiam komenci kun la numera IDENTIGAĴO, Tiam ;# Kaj tiam la ŝnura reprezentado.
// Ni estas normale nur interesita en la nomo, Do ni malkovras la IDENTIGAĴON.
Sistemo.Teksto.RegularExpressions.Regex CheckLookup = nova Sistemo.Teksto.RegularExpressions.Regex(“^D ;#”);
Foreach (XmlElement Ero en ItemsNode.SelectNodes(“Rs:Datumo/z:Disputo”, NameSpaceMgr))
{
Datumoj.DataRow newRow = rezulto.NewRow();
Foreach (Datumoj.DataColumn col en rezulto.Kolumnoj)
{
Se (Ero.HasAttribute(“Ows_” + (Ŝnuro)DisplayNames[Col.ColumnName]))
{
Laĉi val = Ero.GetAttribute(“Ows_” + (Ŝnuro)DisplayNames[Col.ColumnName]);
Se (CheckLookup.IsMatch((Ŝnuro)Val))
{
Laĉi valString = val kiel Ŝnuro;
Val = valString.Substring(ValString.IndexOf(“#”) + 1);
}
// Asignanta ŝnuron al kampo kiu atendas nombrojn aŭ
// Datetime valoroj volas implicitly transformi ilin
NewRow[Col] = Val;
}
}
Rezulto.Disputoj.Aldonas(NewRow);
}
Revena rezulto;
}
// La sekvanta Funkcio estas uzita Akiri Namespaces
Privata senmova XmlNamespaceManager _nsmgr;
Privata senmova XmlNamespaceManager NameSpaceMgr
{
Akiri
{
Se (_Nsmgr == null)
{
_Nsmgr = nova XmlNamespaceManager(Nova NameTable());
_Nsmgr.AddNamespace(“Wss”, “Http://Schemas.Microsoft.Com/sharepoint/sapo/”);
_Nsmgr.AddNamespace(“S”, “Uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_Nsmgr.AddNamespace(“Dt”, “Uuid:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_Nsmgr.AddNamespace(“Rs”, “Urno:Schemas-microsoft-com:Rowset”);
_Nsmgr.AddNamespace(“Z”, “#RowsetSchema”);
}
Revena _nsmgr;
}
}
Privata Tipo TypeFromField(XmlElement kampo)
{
Ŝaltilo (Kampo.GetAttribute(“Tipo”))
{
Kazo “DateTime”:
Revena typeof(DateTime);
Kazo “Integralo”:
Revena typeof(Int);
Kazo “Nombro”:
Revena typeof(Flosigi);
Defaŭlta:
Revena typeof(Ŝnuro);
}
}
WssSite objekto sur #?i tiu kodo, Mi estas akiranta eraron sur #tio ?i, “Vi mankas uzanta instrukcio #a? asemblea referenco?” Ajna ideo
Hi Bala,
WssSite estas Webreference por la listoj.Asmx
Huraoj,
Uday
Bonega. Dankonas Uday. Your post saved me lot of time in my migration project
Vi estas bonvena Jaya