SharePointのライブラリをSilverlightWebパーツを使って取得したいのですが、 実行時にSilverlight アプリケーションをダウンロードできないか、「Silverlight プラグインを読み込めませんでした。」とエラーが表示されます。 どうしたらライブラリのデータを取得できるのでしょうか? 行った手順としては (1)Visual Studio 2010よりSilverlightアプリの追加 (Silverlight アプリケーションを新しい Web サイトでホストするのチェックを外し作成) (2)参照設定より Microsoft.SharePoint.Client.Silverlight.dll Microsoft.SharePoint.Client.Silverlight.Runtime.dllの追加 (3)App.xaml.csファイル Application_Startupメソッドに Application.Init(e.InitParams,SynchronizationContext.Current);を追加 (4)MainPage.xaml.cs の先頭に Microsoft.SharePoint.Client に対する using ステートメントを追加 (5)MainPage.xaml.csに下記コードの追加 (6)SharePointのStyle Libraryフォルダ直下に作成したSilverlightアプリのxapファイルを配置 (7)対象のサイトにSilverlightWebパーツ配置 (8)webパーツプロパティより参照先をStyle LibraryにおいたxapファイルのURLに変更 以上です。 MainPage.xaml.csに追加したプログラムコードは、 using System; using System.Windows; using System.Windows.Controls; using Microsoft.SharePoint.Client; using System.IO; using ClientOM = Microsoft.SharePoint.Client; namespace OSGMovies { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); this.Main(); } private void CopyStream(Stream source, Stream destination) { byte[] buffer = new byte[32768]; int bytesRead; do { bytesRead = source.Read(buffer, 0, buffer.Length); destination.Write(buffer, 0, bytesRead); } while(bytesRead != 0); } public void Main() { ClientContext clientContext = new ClientContext(ClientContext.Current.Url); List sharedDocumentsList = clientContext.Web.Lists .GetByTitle("共有ドキュメント"); CamlQuery camlQuery = new CamlQuery(); camlQuery.ViewXml = "<View><RowLimit>100</RowLimit></View>"; ListItemCollection listItems = sharedDocumentsList.GetItems(camlQuery); clientContext.Load(sharedDocumentsList); clientContext.Load(listItems); clientContext.ExecuteQuery(); if(listItems != null && listItems.Count <= 0) { foreach(ClientOM.ListItem item in listItems) { MessageBox.Show(string.Format("FileLeafRef: {0}", item["FileLeafRef"])); MessageBox.Show(string.Format("FileDirRef: {0}", item["FileDirRef"])); MessageBox.Show(string.Format("FileRef: {0}", item["FileRef"])); MessageBox.Show(string.Format("File Type: {0}", item["File_x0020_Type"])); } } else MessageBox.Show("Document not found."); } } } です。 以上、宜しくお願いします。
↧