Sharepoint学习笔记—习题系列--70-573习题解析 -(Q60-Q62)
Question 60
You have a SharePoint site collection that contains 100 subsites.
You plan to create a Web Part. The Web Part will be deployed to each subsite.
You need to ensure that the Web Part retrieves all of the files in the root directory of the current subsite.
You write the following code segment. (Line numbers are included for reference only.)
01 SPSite site = SPContext.Current.Site;
02 SPWeb web = SPContext.Current.Web;
03
Which code segment should you add at line 03?
A. site.AllWebs[1].Files
B. Site.RootWeb.Lists[0].Items;
C. web.Files;
D. web.RootFolder.SubFolders[0].Files ;
web.Users.Add(currentUser.LoginName, currentUser.Email, currentUser.Name, "");
解析:
本题的目的是想要部署一个Webpart在诸多Subsites上,然后各自获取各个Subsite的根目录下的所有文件。
问题的核心是本题的哪个选项代表了各个Subsite的要目录下的所有文件。
选项A. site.AllWebs[1].Files : 如果要获取某个SPSite对象中的某个指定的Web,貌似一般不能如此用,而应该是site.AllWebs["Site_Name"]; 而且即使本选项在表达上是正确的,在实现上也只是获取某个指定的Web的Root Directory下的所有文件。
选项B. Site.RootWeb.Lists[0].Items; 此选项也不太对,一般也是使用Site.RootWeb.Lists[“List_Name”]方法来获取某个List。况且本选项也只是获取某个List下的Items,而与Web下的Files无关。
选项C. web.Files; 正是本题的答案。返回的就是当前SPWeb对象的Root Directory中的所有的文件。
选项D. web.RootFolder.SubFolders[0].Files ; //想要返回的是Web中的RootFolder,即根文件夹下的指定子文件夹下的文件。
web.Users.Add(currentUser.LoginName, currentUser.Email, currentUser.Name, ""); //想要添加一个SPUser。 很显然,本选项不符合本题的要求。
所以本题目正确选项应该是C
参考:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.files.aspx
http://msdn.microsoft.com/en-us/library/ee547496(v=office.14).aspx
http://msdn.microsoft.com/en-us/library/ms412253.aspx
Question 61
You have a SharePoint site that has the URL http://contoso.com/hr.
You are creating a new Web Part.
You need to create a reference to the current subsite without having to dispose of any returned objects.
Which code segment should you use?
A. SPSite siteCollection = new SPSite("http://www.contoso.com");
SPWebCollection site = siteCollection.AllWebs;
B. SPSite siteCollection = new SPSite("http://www.contoso.com");
SPWeb site = siteCollection.RootWeb;
C. SPSite site = SPContext.Current.Site;
D. SPWeb site = SPContext.Current.Web;
解析:
本题的意图是要在一段WebPart的后台代码中引用当前Subsite对象进行相关操作,并无须担心释放此对象的相关资源。如果你看了Question 58,相信对解决本题就不会再有困难了。
记住如下准则:永远不要去Dispose任何使用SPContext对象获取的资源。因为SPContext对象是由Sharepoint构架管理的,此对象什么时候回收由Sharepoint自身说了算,用不着你人为的干预,而且你的强行干预反而会引起系统的崩溃。由SPContext获取的资源有SPContext.Site, SPContext.Current.Site, SPContext.Web, and SPContext.Current.Web.等等。
因为本题是针对的Subsite,所以引用的对象应该是SPContext.Current.Web,也即选项D符合本题的要求。
选项A.B都是人为新创建了SPSite对象,所以此类对象就需要你Dispose它们的资源。
选项C是引用的SPSite对象而不是SPWeb对象,所以不符合本题要求。
所以本题目正确选项应该是D
Question 62
You create a Feature named Feature1. Feature1 is activated in a SharePoint site.
You create a Web Part that contains the following code.
SPSite site = new SPSite("http://intranet/site1");
SPWeb web = site.OpenWeb();
SPFeatureDefinition feature = SPFarm.Local.FeatureDefinitions["Feature1"];
You need to modify the Web Part to activate Feature1 in Site1 only.
Which code segment should you add to the Web Part?
A. site.Features.Add(feature.Id);
B. site.WebApplication.WebService.Features.Add(feature.Id);
C. web.Features.Add(feature.Id);
D. web.Site.WebApplication.WebService.Features.Add(feature.Id);
解析:
本题想做的事情是通过一个Webpart的后台代码实现仅在Site1(这里我理解Site1就是Site Collection)中激活Feature1。
先来看题干的代码做了些什么事情:
1.SPSite site = new SPSite("http://intranet/site1");
创建了一个SPSite对象(一个Site Collection对象),此对象代表Site1,即获取Site1这个网站集(Site Collection)对象
2.SPWeb web = site.OpenWeb();
请注意,此句使用的OpenWeb()没有任何参数,这种用法表示返回一个SPWeb,此SPWeb对象与上面SPSite的构建函数中使用的URL(即:http://intranet/site1)相关联。在本题也就是返回Site1的Root Web对象 (我们知道Sharepoint中每一个Site Collection都有一个Top Level的Web,这个Web就是此Site Collection的Root Web)。
3.SPFeatureDefinition feature = SPFarm.Local.FeatureDefinitions["Feature1"];
获取一个SPFeatureDefinition对象,此对象包含SPFeature对象的一系列定义(如:Feature名,Feature的标识符,Feature的作用范围和Feature的版本)。本题此处就是获取一个当前Farm中的名为Feature1的这个Feature所对应的SPFeatureDefinition对象。
我们在Question 58了解了SPFeatureCollection 对象,这个对象即是功能集合对象。我们可通过使用 SPWebService、SPWebApplication、SPSite 和 SPWeb 对象的 Features 属性来访问 SPFeatureCollection。如果功能出现在集合中,则该功能已在指定的范围内激活。我们可以使用SPFeatureCollection类的Add方法添加一个新的Feature到这个功能集合对象中。所以指定的Feature被Add方法添加到对应的SPFeatureCollection功能集合对象中时,也就意味着此Feature在功能集合对象所对应的范围内被激活了。
知道了这点,我们就知道如何去寻找答案了:即找到Site1这个Site Collection级别的SPFeatureCollection 对象,然后把我们的Feature1添加到这个功能集合对象中,如上所述,
当Feature1出现在这个功能集合中时,则表明Feature1已在指定的范围内(即本题要求的Site1这个Site Collection级别内)激活了。
所以来看看各选项:
选项A. site.Features.Add(feature.Id); 把Feature1添加到了Site1这个对象级别的SPFeatureCollection 对象中,所以正是本题的答案。
选项B. site.WebApplication.WebService.Features.Add(feature.Id);是在SPWebService级别上的SPFeatureCollection 对象中添加Feature1,所以不符合” activate Feature1 in Site1 only”的要求。
选项C. web.Features.Add(feature.Id); 是在SPWeb级别上的SPFeatureCollection 对象中添加Feature1,所以也不符合” activate Feature1 in Site1 only”的要求。
选项D. web.Site.WebApplication.WebService.Features.Add(feature.Id); 与选项B一样,也是在是在SPWebService级别上的SPFeatureCollection 对象中添加Feature1
所以本题目正确选项应该是A
参考:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.openweb.aspx
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.administration.spfeaturedefinition.aspx
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.spfeaturecollection.aspx
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q60-Q62)的更多相关文章
- Sharepoint学习笔记—ECM系列—文档列表的Metedata Navigation与Key Filter功能的实现
如果一个文档列表中存放了成百上千的文档,想要快速的找到你想要的还真不是件容易的事,Sharepoint提供了Metedata Navigation与Key Filter功能可以帮助我们快速的过滤和定位 ...
- Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现
文档集是 SharePoint Server 2010 中的一项新功能,它使组织能够管理单个可交付文档或工作产品(可包含多个文档或文件).文档集是特殊类型的文件夹,它合并了唯一的文档集属性以及文件夹和 ...
- Sharepoint学习笔记—习题系列--70-576习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-576习题解析 为便于查阅,这里整理并列出了70-576习题解析系列的所有问题,有些内容可能会在以后更新. 需要事先申明的是: 1. ...
- Sharepoint学习笔记—习题系列--70-573习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-573习题解析 为便于查阅,这里整理并列出了我前面播客中的关于70-573习题解析系列的所有问题,有些内容可能会在以后更新, ...
- Deep Learning(深度学习)学习笔记整理系列之(五)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(八)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(七)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(六)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(四)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(三)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
随机推荐
- VisualSFM for Structure from Motion
VisualSFM是Changchang Wu编写的使用 Structure from Motion (SfM)进行3D重建的交互界面,具体内容详见http://homes.cs.washington ...
- ps裁剪圆角
1.打开要编辑的图片 2.选择圆角矩形工具,并调整半径(半径越大,角越圆),本例半径为20像素 3.使用上述工具画出选区 4.按下ctrl+enter,可以看到选区边缘描上了虚线 5.菜单栏-图像-剪 ...
- Android版Ftp服务端软件
分享一款开发的Android版Ftp服务端软件,支持Android4.0及以上版本,可以实现局域网无线传输文件到手机,或者把手机上的多媒体文件分享到iPad等设备来扩展这些设备的存储空间,详情请见软件 ...
- Direct3D11学习:(八)Effects介绍
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 Effects框架是一组用于管理着色器程序和渲染状态的工具代码.例如,你可能会使用不同的effect绘制水.云. ...
- tips javascript(一)
tips javascript(一) 实现type函数用于识别标准类型和内置对象类型,语法如下: var t = type(obj); function type(o){ if (o === n ...
- javascript中&&和||的区别
javascript中&&和||的区别 &&和||操作符两边不是布尔类型时,系统会转换成布尔类型值再计算(空字符串.null.0都会被转成false),结果本身不变. ...
- UIApplication和delegate代理
所有的移动操作系统都有个致命的缺点:app很容易受到打扰,比如一个来电或者锁屏都会导致app进入后台甚至被终止 还有很多其他类似的情况会导致app受到干扰,在app受到干扰时,会产生一些系统事件,这是 ...
- Linq查询简介
查询是一种从数据源检索数据的表达式. 查询通常用专门的查询语言来表示. 随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据库的 SQL 和用于 XML 的 XQuery. 因此, ...
- mysql 判断表字段或索引是否存在,然后修改
判断字段是否存在: DROP PROCEDURE IF EXISTS schema_change; DELIMITER // CREATE PROCEDURE schema_change() BEGI ...
- SqL数据库发布订阅非聚集索引没有被复制到订阅服务器的解决方案
Non-Clustered Indexes not copying in Transactional Replication : SQL Server 2008 方法1: You have trans ...