首先,我是 C# 和 SharePoint 的新手(不到一个月的经验),如果这是一个明显或简单的问题,我深表歉意,但我已经在网上拖网几天了,但绝对没有成功。
我有一个 xslt 文件,已存储在新网站的“样式库”子目录中,但是如何从 c# 中访问它?
我看过 SPSite 和 SPWeb,但似乎都不能完全满足我的要求。
任何和所有的帮助将不胜感激。
非常感谢
c#新手
首先,我是 C# 和 SharePoint 的新手(不到一个月的经验),如果这是一个明显或简单的问题,我深表歉意,但我已经在网上拖网几天了,但绝对没有成功。
我有一个 xslt 文件,已存储在新网站的“样式库”子目录中,但是如何从 c# 中访问它?
我看过 SPSite 和 SPWeb,但似乎都不能完全满足我的要求。
任何和所有的帮助将不胜感激。
非常感谢
c#新手
下面是一些从列表中检索列表项的代码:
SPList list = web.Lists["MyLibrary"];
if (list != null)
{
var results = from SPListItem listItem in list.Items
select new
{
xxx = (string)listItem["FieldName"]),
yyy = (string)listItem["AnotherField"],
zzz = (string)listItem["Field"]
};
}
要检索文件,您还可以在 SPWeb 上使用此方法:GetFileAsString
没有 linq:
int itemId = getItemId();
SPWeb currentWeb = SPContext.Current.Web;
SPList list = currentWeb.Lists["MyList"];
if ( list != null )
{
SPListItem theItem = list.Items.GetItemById(itemId);
doWork(theItem);
}
可以通过多种方式检索 SPWeb,如果从 SharePoint 调用代码,则使用 SPContext 将起作用。要从 URL 获取 SPWeb 对象,您可以使用 SPSite 对象,即
using ( SPSite site = new SPSite(urlToWeb) )
{
using (SPWeb web = site.OpenWeb())
{
doWork(web);
}
}
“using”语句通过在相关对象上调用“Dispose()”来确保及时回收非托管资源。
HTH, jt
非常感谢您对此提供的帮助。我已经从每个中使用了一点,并做了一些额外的阅读,并提出了以下内容:
private static string getXsl()
{
string xslString = null;
using (StreamReader streamReader = new StreamReader(
File.Open(HttpContext.Current.Server.MapPath(@"~_layouts\theXSL.xslt"), FileMode.Open)))
{
xslString = streamReader.ReadToEnd();
}
return xslString;
}
尽管这可能很有效,但您应该真正研究最佳实践,因为它们与将文档存储在 12 个配置单元中而不是内容数据库中有关。
有更多可扩展的答案,在选择旅鼠路线之前应该考虑这些答案。