文章主旨:获取SharePoint 2010 中SPFarm, SPWebApplicationCollection, SPWebApplication, SPSiteCollection, SPSite, SPWebCollection, SPWeb, SPListCollection, SPList级别对象的基本操作。【更在于方便自己在工作中的记忆与学习】
对SharePoint的基本操作有很多,要熟悉它的API不是一朝一夕就能搞定的事情,这篇文章主要是记录如何获取SharePoint中List级别以上对象的获取。下面是我自己测试的代码,希望对你有所帮助:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using Microsoft.SharePoint;
6 using Microsoft.SharePoint.Administration;
7
8 namespace GetCommonLevelObject
9 {
10 class CommonLevelObject
11 {
12 //在运行这部分代码之前要保证:
13 //1:本机已经成功安装SharePoint
14 //2:本项目里已经添加了SharePoint的服务(并且命名空间添加:SharePoint和SharePoint.Administration)
15 //3:本项目的(属性)Platform target一定是 x64 或 any cpu,(若是x86则会得不到SharePoint的对象)同时 Application的Target Framework == .NET Framework 3.5
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using Microsoft.SharePoint;
6 using Microsoft.SharePoint.Administration;
7
8 namespace GetCommonLevelObject
9 {
10 class CommonLevelObject
11 {
12 //在运行这部分代码之前要保证:
13 //1:本机已经成功安装SharePoint
14 //2:本项目里已经添加了SharePoint的服务(并且命名空间添加:SharePoint和SharePoint.Administration)
15 //3:本项目的(属性)Platform target一定是 x64 或 any cpu,(若是x86则会得不到SharePoint的对象)同时 Application的Target Framework == .NET Framework 3.5
16 staticvoid Main(string[] args)
17 {
18 //获取本地SharePoint的Farm(并且输出Farm的名字)
19 SPFarm mLocalFarm = SPFarm.Local;
20 string mLocalFarmName = mLocalFarm.DisplayName;
21 Console.WriteLine("The Local SPFarm name is: {0}", mLocalFarmName);
22
23
24 //获取WebApplicationCollection
25 SPWebApplicationCollection mWebAppCol = SPWebService.ContentService.WebApplications;
26 //遍历WebApplicationCollection中所有的WebApp
27 foreach (SPWebApplication webapp in mWebAppCol)
28 {
29 Console.WriteLine("The name of SPWebApplication is: {0}", webapp.Name);
30 }
31 //获取WebApplicationCollection中某个特定的WebApp
32 SPWebApplication mWebApp = mWebAppCol["SharePoint - 12345"]; //下标为WebApp的名字或Guid
33
34
35 //获取某个WebApp下的SiteCollection
36 SPSiteCollection mSiteCol = mWebApp.Sites;
37 //遍历SiteCollection中所有的Site(即:手动创建的每一个SiteCollection)
38 foreach (SPSite site in mSiteCol)
39 {
40 Console.WriteLine("The name of SPSite is: {0}", site.Url); //site没有Name和Title属性
41 }
42 //获取SiteCollection中某个特定的Site【下标为Site的Server_Relative Url或是在SiteCollection中的序号】
43 SPSite mSite = mSiteCol["sites/MyTeamSiteCollection1"];
44
45
46 //获取某个Site下的WebCollection(其中包括该Site的RootWeb)
47 //(注:Web的Name是Url上显示的名字;Title是页面显示的名字。手动创建时都可以填写)
48 SPWebCollection mWebCol = mSite.AllWebs;
49 foreach (SPWeb web in mWebCol)
50 {
51 Console.WriteLine("The title of web is: {0}", web.Title);
52 Console.WriteLine("The name of web is: {0}", web.Name);
53 }
54
55 //获得某个Site的RootWeb
56 SPWeb rootWeb = mSite.RootWeb;
57 //获取某个RootWeb(Web)下的WebCollection(其中不包含该RootWeb(Web))
58 SPWebCollection mAnotherWebCol = rootWeb.Webs;
59 foreach (SPWeb web in mAnotherWebCol)
60 {
61 Console.WriteLine("The title of web is: {0}", web.Title);
62 Console.WriteLine("The name of web is: {0}", web.Name);
63 }
64
65 //获取WebCollection中某个特定的Web
66 SPWeb mWeb = mWebCol["MyTeamSite1"];
67 //获取某个Web下的SPListCollection(之后的以此类推)
68 //【注:Site没有.Lists属性,但是Web有.Lists属性】
69 SPListCollection mListCol = mWeb.Lists;
70 foreach (SPList list in mListCol)
71 {
72 Console.WriteLine("The title of the list is: {0}", list.Title); //List没有Name,但是有Title
73 }
74 SPList mList = mListCol["NewCustomList1"];
75
76 }
77 }
78 }
79
17 {
18 //获取本地SharePoint的Farm(并且输出Farm的名字)
19 SPFarm mLocalFarm = SPFarm.Local;
20 string mLocalFarmName = mLocalFarm.DisplayName;
21 Console.WriteLine("The Local SPFarm name is: {0}", mLocalFarmName);
22
23
24 //获取WebApplicationCollection
25 SPWebApplicationCollection mWebAppCol = SPWebService.ContentService.WebApplications;
26 //遍历WebApplicationCollection中所有的WebApp
27 foreach (SPWebApplication webapp in mWebAppCol)
28 {
29 Console.WriteLine("The name of SPWebApplication is: {0}", webapp.Name);
30 }
31 //获取WebApplicationCollection中某个特定的WebApp
32 SPWebApplication mWebApp = mWebAppCol["SharePoint - 12345"]; //下标为WebApp的名字或Guid
33
34
35 //获取某个WebApp下的SiteCollection
36 SPSiteCollection mSiteCol = mWebApp.Sites;
37 //遍历SiteCollection中所有的Site(即:手动创建的每一个SiteCollection)
38 foreach (SPSite site in mSiteCol)
39 {
40 Console.WriteLine("The name of SPSite is: {0}", site.Url); //site没有Name和Title属性
41 }
42 //获取SiteCollection中某个特定的Site【下标为Site的Server_Relative Url或是在SiteCollection中的序号】
43 SPSite mSite = mSiteCol["sites/MyTeamSiteCollection1"];
44
45
46 //获取某个Site下的WebCollection(其中包括该Site的RootWeb)
47 //(注:Web的Name是Url上显示的名字;Title是页面显示的名字。手动创建时都可以填写)
48 SPWebCollection mWebCol = mSite.AllWebs;
49 foreach (SPWeb web in mWebCol)
50 {
51 Console.WriteLine("The title of web is: {0}", web.Title);
52 Console.WriteLine("The name of web is: {0}", web.Name);
53 }
54
55 //获得某个Site的RootWeb
56 SPWeb rootWeb = mSite.RootWeb;
57 //获取某个RootWeb(Web)下的WebCollection(其中不包含该RootWeb(Web))
58 SPWebCollection mAnotherWebCol = rootWeb.Webs;
59 foreach (SPWeb web in mAnotherWebCol)
60 {
61 Console.WriteLine("The title of web is: {0}", web.Title);
62 Console.WriteLine("The name of web is: {0}", web.Name);
63 }
64
65 //获取WebCollection中某个特定的Web
66 SPWeb mWeb = mWebCol["MyTeamSite1"];
67 //获取某个Web下的SPListCollection(之后的以此类推)
68 //【注:Site没有.Lists属性,但是Web有.Lists属性】
69 SPListCollection mListCol = mWeb.Lists;
70 foreach (SPList list in mListCol)
71 {
72 Console.WriteLine("The title of the list is: {0}", list.Title); //List没有Name,但是有Title
73 }
74 SPList mList = mListCol["NewCustomList1"];
75
76 }
77 }
78 }
79
关于所有List级别以下(Item,Folder,File等等)对象的获取以后再详细介绍。