有没有在web上下文之外以编程方式访问Sitecore的方法?

有没有在web上下文之外以编程方式访问Sitecore的方法?,sitecore,.net-assembly,Sitecore,.net Assembly,我正在为当前项目使用Sitecore直接访问API。我有时会遇到这样的情况:我希望有一个独立的程序集来调用Sitecore,而不一定是在web上下文中。有没有任何方法可以在不将代码部署到网站的情况下访问Sitecore上下文 当然有很多配置设置。到目前为止,我试图伪造web上下文并提供必要设置的尝试都失败了。是否有文档说明加载全局对象需要执行哪些特定步骤,以及执行通常由Sitecore请求处理/管道处理完成的所有其他操作?如果您不想走web服务路线,描述如何设置类库项目以访问Sitecore信息

我正在为当前项目使用Sitecore直接访问API。我有时会遇到这样的情况:我希望有一个独立的程序集来调用Sitecore,而不一定是在web上下文中。有没有任何方法可以在不将代码部署到网站的情况下访问Sitecore上下文


当然有很多配置设置。到目前为止,我试图伪造web上下文并提供必要设置的尝试都失败了。是否有文档说明加载全局对象需要执行哪些特定步骤,以及执行通常由Sitecore请求处理/管道处理完成的所有其他操作?

如果您不想走web服务路线,描述如何设置类库项目以访问Sitecore信息。在本例中,它是用于NUnit测试的,但我相信技术是相同的

总之,它涉及将Sitecore web.config信息复制到app.config文件(以及其他配置文件),引用相关的Sitecore程序集,并进行一些配置调整以修复对app_config文件夹的引用

注意,使用此技术时,您的
Sitecore.Context.Item
将为空,因此您可能需要通过其路径或Id直接访问项目,例如

var db = Sitecore.Configuration.Factory.GetDatabase("master");

var homeItem = db.GetItem("/sitecore/content/home");
//or
var homeItem = db.GetItem(new Sitecore.Data.ID("<your GUID here>"));
var db=Sitecore.Configuration.Factory.GetDatabase(“master”); var homeItem=db.GetItem(“/sitecore/content/home”); //或 var homeItem=db.GetItem(新的Sitecore.Data.ID(“”);
您是否尝试过查看web服务?我不确定这是否符合“网络环境之外”的标准,但这可能是一个很好的起点。谢谢,杜尔克。有趣的是,我现在正在组装一些HTTP处理程序,但我仍然对找到一种直接针对Sitecore编程的方法感兴趣,但不需要HttpContext。太棒了!谢谢。答案中提供的链接已被删除,您是否有其他参考来检查它?