הוסף webreference כדי Lists.asmx באתר SharePoint.
http://localhost / _vti_bin / Lists.asmx
(SharePoint וירטואלי מדריך URL / _vti_bin / Lists.asmx
לכתוב את השיטות הבאות WebService שלך.
פרטי data.DataTable GetDataTableFromWSS(BOOL onlySchema)
{
מחרוזת WssSiteUrl = http://192.168.111.21;
מחרוזת WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists רשימות = WssSite.Lists חדשים();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
lists.PreAuthenticate = נכון;
//אתה צריך להעביר את שם רשימת כאן
מחרוזת CommandText = “העובד מידע”;
XmlNode = ListCollectionNode lists.GetListCollection();
רשימת XmlElement = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“WSS:רשימת[@ Title = "{0}"]”, CommandText), NameSpaceMgr);
אם (רשימת == null)
{
לזרוק ArgumentException חדש(String.Format(“רשימה {0} לא נמצא באתר {1}”, CommandText, WssSiteUrl));
}
TechListName מחרוזת = List.GetAttribute(“שם”);
התוצאה data.DataTable = חדש data.DataTable(“רשימה”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = חדש System.Text.StringBuilder();
DisplayNames System.Collections.Hashtable = חדש System.Collections.Hashtable();
foreach (XmlElement שדה ListInfoNode.SelectNodes(“WSS:שדות / WSS:שדה”, NameSpaceMgr))
{
אם (Field.HasChildNodes)
{
foreach (XmlElement FLD ב Field.SelectNodes(“WSS:שדות / WSS:שדה”, NameSpaceMgr))
{
מחרוזת fieldname = Fld.GetAttribute(“שם”);
מחרוזת FieldDisplayName = Fld.GetAttribute(“DisplayName”);
אם (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(שדה));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
אחר
{
מחרוזת fieldname = Field.GetAttribute(“שם”);
מחרוזת FieldDisplayName = Field.GetAttribute(“DisplayName”);
אם (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(שדה));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
אם (onlySchema) להחזיר את התוצאה;
שדות XmlElement = ListInfoNode.OwnerDocument.CreateElement(“לשדות התצוגה”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, אפס, שדות, “1000000”, אפס);
// בדיקת שדות תמיד להתחיל עם מספרי זיהוי, אז ;# ואז ייצוג מחרוזת.
// אנחנו בדרך כלל מעוניינים רק שם, אז אנחנו להתפשט מזהה.
CheckLookup System.Text.RegularExpressions.Regex = חדש System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (XmlElement פריט ItemsNode.SelectNodes(“RS:נתונים / ת:שורה”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (data.DataColumn כרוב result.Columns)
{
אם (Item.HasAttribute(“ows_” + (מיתר)DisplayNames[col.ColumnName]))
{
מחרוזת ואל Item.GetAttribute =(“ows_” + (מיתר)DisplayNames[col.ColumnName]);
אם (CheckLookup.IsMatch((מיתר)ואל))
{
מחרוזת = valString הבחירה כמחרוזת;
ואל valString.Substring =(valString.IndexOf(“#”) + 1);
}
// הקצאת מחרוזת לשדה המצפה מספרים או
// ערכים השניות של שינוי הקובץ יהיה להמיר אותם במובלע
newRow[עם] = ואל;
}
}
result.Rows.Add(newRow);
}
להחזיר את התוצאה;
}
// הפונקציה הבאה משמש קבל מרחבי שמות
פרטי XmlNamespaceManager סטטי _nsmgr;
פרטי XmlNamespaceManager סטטי NameSpaceMgr
{
לקבל
{
אם (_nsmgr == null)
{
_nsmgr = חדש XmlNamespaceManager(חדש NameTable());
_nsmgr.AddNamespace(“WSS”, “http://schemas.microsoft.com / SharePoint / סבון /”);
_nsmgr.AddNamespace(“עם”, “uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“DT”, “uuid:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“RS”, “מיחם:סכמות של Microsoft-com:rowset”);
_nsmgr.AddNamespace(“של”, “#RowsetSchema”);
}
לחזור _nsmgr;
}
}
סוג פרטית TypeFromField(XmlElement בתחום)
{
להחליף (field.GetAttribute(“סוג”))
{
מקרה “DateTime”:
לחזור typeof(DateTime);
מקרה “מספר שלם”:
לחזור typeof(int);
מקרה “מספר”:
לחזור typeof(לצוף);
ברירת מחדל:
לחזור typeof(מיתר);
}
}
אובייקט WssSite על הקוד הזה, אני מקבל שגיאה על זה, “חסרה לך הוראה או באמצעות הפניה הרכבה?” מושג
היי באלה,
WssSite הוא Webreference עבור lists.asmx
לחיים,
עודאי
מעולה. תודה עודאי. Your post saved me lot of time in my migration project 🙂
אתם מוזמנים ג'יה