.net – 如何更改乌节纪录库

我正在考虑使用 Orchard CMS的项目.

但是,我们希望使用Web服务作为某些内容项的数据源.我想我们必须更改存储库实现,以使其成为可能,但我不确定.

所以我的问题是:我的猜测是正确的还是更复杂?那么怎么办呢?

谢谢!

更新:
我看到Orchard的IRepository接口需要LINQ提供程序来实现.在这种情况下,这是不可能的,因为Web服务是通过SOAP提供的.

我会更好地进一步描述场景:

我们希望建立的网站必须使用Web服务来获取有关组织成员和单位的信息.我们想在网站上显示一些组织单位的成员,例如.我们还想创建自己的内容类型“事件”,应该具有与成员(来自WS)的M:N关系(参加者).

解决方法

您不必实现一个存储库,以防您不想将零件存储完全指向其他位置.我目前在我的一个基于果园的项目中使用WCF服务,所以您的方案是类似的.

你可以这样做:

>将Web服务代理包装在一个实现IDependency的类中,所以你可以将其注入到驱动程序/处理程序/控制器等中.为了方便单元测试和嘲笑,您应该创建一个单独的界面,例如. IMyWebServiceWrapper:依赖并实现它.
>创建适当的内容零件和记录.在记录中只存储从WS定位和获取数据所需的信息.在内容部分创建所有必需的属性 – 它们将从WS加载.
将你的班级从1点注入适当的内容处理程序的构造函数
>在内容处理程序构造函数中使用这样的东西:

OnLoaded< MyPart>((ctx,part)=> {
part.MyProperty = myService.GetMyProperty(part.someIdToLookup);
});

> MyPart是您在乌节方面的一部分.
> MyProperty是您的部分属性,将从WS加载.
> myService是您包装的WS代理,作为构造函数参数传递.
> GetMyProperty是一个在包装器中调用WS并检索必要数据的方法.

当然,您可以使用其他处理程序事件(如OnInitialized,OnCreated,OnPublished等).您可以阅读有关内容处理程序here的更多信息.

我也建议从Codeplex获得一个dev startup module快速开发.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....