XML-данные документа Sharepoint 2010 Silverlight - PullRequest
1 голос
/ 15 марта 2011

У меня есть библиотеки документов, в которых я сохраняю документы (je).(тоже из silverlight, но эта проблема уже решена)

Я хочу использовать объектную модель Sharepoint 2010 из приложения silverlight для получения XML-данных документа с ID = ...

Сначала я сериализую класс и загружаю его в библиотеку документов, а затем хочу получить его ...

Этот XML должен содержать объект для десериализации с помощью XMLSerializer ...

Как можноЯ делаю это?

Ответы [ 3 ]

1 голос
/ 16 марта 2011

Вот хороший набор информации, касающейся клиентской объектной модели SharePoint:

http://msdn.microsoft.com/en-us/library/ee857094.aspx

Вот конкретный пример запроса списка (например, библиотеки документов) с помощьюКлиентская объектная модель:

http://msdn.microsoft.com/en-us/library/ee857094.aspx#SP2010ClientOM_Using_CAML_Query_List

Мне очень нравится этот пример на сайте .NET by Example:

http://dotnetbyexample.blogspot.com/2011/03/sharepoint-client-object-model-sites.html

Мне понравилась идея создания класса SharePointHelper в качестве оболочки для клиентской объектной модели.Он предоставляет множество примеров, включая «Загрузка файла из библиотеки документов»

1 голос
/ 16 марта 2011

Сначала вы захотите познакомиться с клиентской объектной моделью Silverlight, вот для начала, но есть немало других:

http://praveenbattula.blogspot.com/2010/03/sharepoint-2010-silverlight-client.html

Тогда вы захотите узнать, как сделать запрос к списку, используя CAML и используя элементы в вашем наборе результатов, чтобы получить Документ в нужной вам библиотеке.

Вероятно, затем вы захотите передать содержимое (используя SPListItem.File.OpenBinaryStream ()) в какой-нибудь читатель, чтобы вы могли десериализовать.

0 голосов
/ 18 марта 2011

Я делаю это первым:

  using (ClientContext ctx = new ClientContext("http://med02ws:47205/Documentos"))
                {
                    Web web = ctx.Web;

                    List docs = web.Lists.GetByTitle(tipo);

                    DocumentoObtenidoSP = docs.GetItemById(id);

                    ctx.Load(DocumentoObtenidoSP);
                    ctx.ExecuteQueryAsync(OnCargarDocumentoSucceess, OnSharepointFailure);
                }

     private void OnCargarDocumentoSucceess(object sender, ClientRequestSucceededEventArgs e)
{
                WebClient wc = new WebClient();
                wc.OpenReadCompleted += new OpenReadCompletedEventHandler(WebClient_OpenFileReadCompleted);
                wc.OpenReadAsync(new Uri("http://med02ws:47205" + DocumentoObtenidoSP.FieldValues["FileRef"].ToString()));
}

private void WebClient_OpenFileReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
//In e.Result you got the stream to XML Deserialize using the XMLSerializer
}
...