- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个 Controller ,用于从博客中检索某些博文。我想检索前 20 个帖子和评分最高的 20 个帖子。
为此,我创建了一个 Controller 来检索此信息。在深入了解标准 Orchard 博客模块后,我发现我需要 IBlogService 或 IBlogPostService。我可以看到这些被注入(inject)到 BlogPostController 中,如下所示:
public BlogPostController(
IOrchardServices services,
IBlogService blogService,
IBlogPostService blogPostService,
IFeedManager feedManager,
IShapeFactory shapeFactory)
但是这些服务是如何连线/连接/注入(inject)的?我找不到调用构造函数的那段代码,也找不到我在 StructureMap 中习惯使用的一些接线。
我可以只在构造函数中添加 Iservices 吗,Orchard 会确保我有正确的对象,还是我需要先做些什么?
目前我的类(class)看起来像这样(默认):
public class FrontpageController : Controller
{
public IOrchardServices Services { get; set; }
public FrontpageController(IOrchardServices services)
{
Services = services;
T = NullLocalizer.Instance;
}
public Localizer T { get; set; }
[HttpGet]
public ActionResult Index()
{
//Do something to get blogposts
throw new NotImplementedException();
}
}
最佳答案
Orchard 通过控制反转使用依赖注入(inject),使用名为 AutoFac 的库.听起来像一口,但事实并非如此。本质上,您在构造函数的参数中指定所需的服务,AutoFac 会自动解析它们并使用实现您指定接口(interface)的类实例调用构造函数。
您已经将 IOrchardServices
注入(inject)到您的 Controller 中,因此您可以对实现 IDependency
的任何其他类/接口(interface)执行相同的操作。 (IBlogPostService
和IBlogService
都继承自IDependency
)
要对博客服务做同样的事情,您可以执行以下操作:
public class FrontpageController : Controller
{
public IOrchardServices Services { get; set; }
private readonly IBlogService _blogs;
private readonly IBlogPostService _posts;
public FrontpageController(IOrchardServices services, IBlogService blogs, IBlogPostService posts)
{
Services = services;
T = NullLocalizer.Instance;
_posts = posts;
_blogs = blogs;
}
public Localizer T { get; set; }
[HttpGet]
public ActionResult Index()
{
//Do something to get blogposts
throw new NotImplementedException();
}
}
然后在您的 Index
方法中,您可以开始使用 _blogs
和 _posts
来执行与博客相关的操作。
关于orchardcms - 在 Orchard 模块中使用 IBlogService(或任何其他服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9931819/
在撰写本文时,Orchard 项目 (http://www.orchardproject.net/) 的版本为 1.1。 我正在考虑将其用于金融服务网站。稳定性,安全性在这里是重中之重。大多数情况下,
我通过一个返回一组已知内容类型的内容项的查询定义了我自己的投影。我想提取这些内容项的某些内容部分并将它们显示在列表中。使用形状跟踪工具,我找到了编写自定义布局的 View 模板: /Views/Par
在迁移文件中使用 orchad 1.6 我刚刚更改了一个表并添加了一个列。我需要此列为 NotNull,但它不允许您更改表输入 NotNull 类型,因此我使用了 Nullable 并将数据输入到现有
我已经搜索了 Orchard 文档(以及一些 google-fu),但找不到任何解释 StereoType 是什么以及何时(如果可能)创建或扩展 StereoType 的内容。 有人可以解释一下它们是
我的布局文件中有以下区域: @Display(Model.Blog) 我想总是将我的博客文章列表呈现到这个区域中,所以我编辑了我的 place.info 文件,如下所示: Parts.Blogs.B
我刚刚下载并安装了Orchard CMS并开始使用它。 在区域中创建了一些小部件,并创建了博客并自定义了我的顶部菜单。 现在,我要对欢迎页面进行一些修改。我想删除标题字段和显示创建日期的行,仅显示正文
我在使用 Orchard 时遇到了一个问题,我确信应该有一个相当简单的修复/解决方案,但我还没有找到它。 我正在尝试为我的主页(580px)建立一个特定宽度的内容区域,并为内容页面(800px)建立一
在 Orchard 中,我有一个包含 DateTime 字段的自定义内容类型。我创建了一个规则,用于在提交新内容项时发送电子邮件。我可以使用以下标记在电子邮件中包含 DateTime 字段的值: {C
我创建了一个 PersonPart 并将其附加到我的 Employee 类型。它包含名字和姓氏,并实现了 ITitleAspect,这样当我创建一堆员工时,他们不会在内容列表中全部显示为“员工”。现在
我是 Orchard CMS 的新手。我已经从http://orchardproject.net/下载了源代码。我无法找到所提供的屏幕截图中内容周围的编辑链接。我曾在 Sitecore 工作过,现在正
我正在尝试覆盖实际区域模板的呈现。 它呈现出这样的东西: content is stuffed in here 我发现如果将 Zone.cshtml
也许这更像是一个 ASP.NET MVC 问题而不是一个 Orchard 问题,但我对这两个问题都比较陌生,我不知道这两种情况的答案。 ASP.NET MVC 应用程序在技术上没有单一入口点,所以我应
我正在尝试覆盖实际区域模板的呈现。 它呈现出这样的东西: content is stuffed in here 我发现如果将 Zone.cshtml
我对 Orchard 很陌生。 为了学习 orchard 模块开发,我按照文档尝试创建了一个商务模块。 模块由产品部分和产品类型组成。 在启用模块期间,它将为该模块创建管理菜单和主菜单,分别为“Com
我有一个自定义模块。 Migrations.cs 看起来像这样。 public int Create() { SchemaBuilder.CreateTable("My
我花了几个小时试图解决这个问题。希望这是一个简单的解决方案,难点仅是因为我是Orchard CMS的新手,并且没有专业的Web开发人员... 我已经创建了“产品下载”页面,需要插入指向文件系统上存在的
我想使用 AttributeRouting使用 Orchard CMS。为此,我需要实现 IRouteProvider使用返回 Orchard 列表的方法 RouteDescriptor s。 我需要
文档( here 和 here )明显缺乏关于如何解析模块中的引用的信息: References Resolution (TODO: Explain how Orchard figures out r
我在 Orchard 中构建了一个自定义模块,用于创建新的部件、类型和自定义事件,但我正在努力解决我需要做的最后一部分,即创建与 相关的所有内容项的副本特定的父项。 例如,当有人创建“贸易展览”(我的
我是 Orchard 模块开发的新手。我创建了一个模块。当我尝试保存数据时。我在保存数据之前使用此代码 public ActionResult Create(FormCollection in
我是一名优秀的程序员,十分优秀!