Retreiving список содержимого через WebService в SharePoint 2003

Добавить WebReference к Lists.asmx в узел SharePoint.

HTTP://локальный / _vti_bin / Lists.asmx
(SharePoint URL виртуального каталога / _vti_bin / Lists.asmx

написать следующие методы в вашем веб-сервиса.

частных 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 = True;
//Вы должны пройти Список имя здесь
Строка 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 узел = listinfo lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs = новый System.Text.StringBuilder();
System.Collections.Hashtable DisplayNames = новый System.Collections.Hashtable();
Еогеасп (XmlElement поле в ListInfoNode.SelectNodes(“WSS:Поля / WSS:Поле”, NameSpaceMgr))
{
если (Field.HasChildNodes)
{
Еогеасп (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(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, нуль, полей, “1000000”, нуль);
// Поля подстановок всегда начинаются с числовым идентификатором, то ;# , а затем строковое представление.
// Мы, как правило, заинтересованы только в названии, поэтому мы Газа ID.
System.Text.RegularExpressions.Regex CheckLookup = новый System.Text.RegularExpressions.Regex(“^ D ;#”);

Еогеасп (XmlElement Пункт в ItemsNode.SelectNodes(“RS:Дата / г:строки”, NameSpaceMgr))
{
data.DataRow NewRow = result.NewRow();
Еогеасп (result.Columns data.DataColumn Col)
{
если (Item.HasAttribute(“ows_” + (строка)DisplayNames[col.ColumnName]))
{
Строка значения = Item.GetAttribute(“ows_” + (строка)DisplayNames[col.ColumnName]);
если (CheckLookup.IsMatch((строка)выборы))
{
Строка valString = значение как String;
valString.Substring выбор =(valString.IndexOf(“#”) + 1);
}
// Назначение строку в поле, что ожидает номера или
// DateTime значения будут неявно конвертировать их
NewRow[с] = Выбор;
}
}
result.Rows.Add(NewRow);
}
Возвращаемый результат;
}

// Эта функция используется для получения имен

частных статических _nsmgr XmlNamespaceManager;
частных статических XmlNamespaceManager NameSpaceMgr
{
получить
{
если (_nsmgr == NULL)
{
_nsmgr = новый XmlNamespaceManager(новые NameTable());
_nsmgr.AddNamespace(“WSS”, “HTTP://schemas.microsoft.com / SharePoint / SOAP /”);
_nsmgr.AddNamespace(“с”, “UUID:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882”);
_nsmgr.AddNamespace(“DT”, “UUID:C2F41010-65B3-11D1-A29F-00AA00C14882”);
_nsmgr.AddNamespace(“RS”, “урна:Схемы-Microsoft-COM:строк”);
_nsmgr.AddNamespace(“из”, “#RowsetSchema”);

}
возвращение _nsmgr;
}
}
личного типа TypeFromField(XmlElement поле)
{
переключатель (field.GetAttribute(“Тип”))
{
случае “DateTime”:
возвращение TypeOf(DateTime);
случае “Целое число”:
возвращение TypeOf(Int);
случае “Количество”:
возвращение TypeOf(поплавок);
по умолчанию:
возвращение TypeOf(строка);
}
}

4 Комментарии к Retreiving список содержимого через WebService в SharePoint 2003

  • noreply@blogger.com (пуля)

    WssSite объекта на этот код, Я получаю ошибку на этой, “Вы пропускаете директиву или ссылки на сборку?” Любая идея,

  • noreply@blogger.com (Удай)

    Привет Бала,
    WssSite является WebReference для lists.asmx

    Ура,
    Удай

  • noreply@blogger.com (Джая сверла)

    Отлично. Благодаря Удай. Ваше сообщение спасло меня много времени в моей миграции проекте 🙂

  • noreply@blogger.com (Удай)

    Вы можете Джая

Написать ответ

Вы можете использовать эти HTML теги

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>