微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.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快速开发.

原文地址:https://www.jb51.cc/aspnet/246629.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐