Sharepoint site Lists.asmx için webreference ekle.
http://localhost / _vti_bin / Lists.asmx
(SharePoint sanal Dizin URL / _vti_bin / Lists.asmx
sizin webcoder aşağıdaki yöntemleri yazmak.
Özel data.DataTable GetDataTableFromWSS(bool onlySchema)
{
dize WssSiteUrl = http://192.168.111.21;
dize WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Lists listeleri = new WssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;
= true lists.PreAuthenticate;
//Burada Liste Adını geçmek zorunda
dize CommandText = “Çalışan Bilgisi”;
XmlNode ListCollectionNode = lists.GetListCollection();
XmlElement Listesi = (XmlElement)ListCollectionNode.SelectSingleNode(String.Format(“wss:Liste[@ Başlık = '{0}']”, CommandText), NameSpaceMgr);
eğer (Liste == null)
{
Yeni ArgumentException(String.Format(“liste {0} Sitede bulunamadı {1}”, CommandText, WssSiteUrl));
}
dize TechListName = List.GetAttribute(“Adı”);
data.DataTable sonuç = yeni data.DataTable(“liste”);
XmlNode ListInfoNode = lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = Yeni System.Text.StringBuilder();
System.Collections.Hashtable displaynames = Yeni System.Collections.Hashtable();
foreach (ListInfoNode.SelectNodes içinde XmlElement Alan(“wss:Alanları / wss:Alan”, NameSpaceMgr))
{
eğer (Field.HasChildNodes)
{
foreach (Field.SelectNodes içinde FLD XmlElement(“wss:Alanları / wss:Alan”, NameSpaceMgr))
{
Dize = FIELDNAME Fld.GetAttribute(“Adı”);
Dize = FieldDisplayName Fld.GetAttribute(“Ekran adı”);
eğer (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Alan));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
başka
{
dize FieldName = Field.GetAttribute(“Adı”);
dize FieldDisplayName = Field.GetAttribute(“Ekran adı”);
eğer (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(Alan));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
eğer (onlySchema) Dönüş sonucu;
XmlElement alanlar = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, boş, alanlar, “1000000”, boş);
// Arama alanları her zaman sayısal kimliği ile başlar, sonra ;# ve sonra dize temsil.
// Biz normalde isim sadece ilgilendi, bu yüzden kimliğini şerit.
System.Text.RegularExpressions.Regex CheckLookup = Yeni System.Text.RegularExpressions.Regex(“^ D ;#”);
foreach (ItemsNode.SelectNodes içinde XmlElement Öğe(“rs:Eldeki / z:sıra”, NameSpaceMgr))
{
data.DataRow newRow = result.NewRow();
foreach (result.Columns içinde data.DataColumn col)
{
eğer (Item.HasAttribute(“ows_” + (dizi)DisplayNames[col.ColumnName]))
{
dize val = Item.GetAttribute(“ows_” + (dizi)DisplayNames[col.ColumnName]);
eğer (CheckLookup.IsMatch((dizi)saat))
{
dize valString = val String olarak;
val = valString.Substring(valString.IndexOf(“#”) + 1);
}
// Numaraları veya beklediği bir alana bir dize atama
// datetime değerleri örtük onları dönüştürmek olacak
newRow[ile] = H;
}
}
result.Rows.Add(newRow);
}
Dönüş sonucu;
}
// Aşağıdaki Fonksiyon Namespaces Get kullanılır
özel statik XmlNamespaceManager _nsmgr;
özel statik XmlNamespaceManager NameSpaceMgr
{
almak
{
eğer (_nsmgr == null)
{
_nsmgr = Yeni XmlNamespaceManager(Yeni NameTable());
_nsmgr.AddNamespace(“wss”, “http://schemas.microsoft.com/sharepoint/soap/”);
_nsmgr.AddNamespace(“ile”, “Uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“dt”, “Uuid:C2F41010-65B3-11d1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“rs”, “semaver:şemalar-microsoft-com:satır kümesi”);
_nsmgr.AddNamespace(“itibaren”, “#RowsetSchema”);
}
_nsmgr dönüş;
}
}
Özel Tip TypeFromField(XmlElement alan)
{
anahtar (field.GetAttribute(“Tip”))
{
durum “DateTime”:
Typeof dönüş(DateTime);
durum “Tamsayı”:
Typeof dönüş(int);
durum “Numara”:
Typeof dönüş(şamandıra);
Varsayılan:
Typeof dönüş(dizi);
}
}
Bu kodu itiraz WssSite, Ben bu hatayı alıyorum, “Bir kullanarak yönergesi veya bir derleme başvurusu eksik?” Herhangi bir fikir
Orada Bala,
WssSite Lists.asmx bir Webreference olan
Şerefe,
Uday
Mükemmel. Teşekkürler Uday. Your post saved me lot of time in my migration project 🙂
Sen Jaya bekliyoruz