Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF约束、合同、知识产权_Wcf_Msmq - Fatal编程技术网

WCF约束、合同、知识产权

WCF约束、合同、知识产权,wcf,msmq,Wcf,Msmq,我以前在一个原型项目中就能够做到这一点,但因为现在它正在“实施”项目中包含的其他内容,所以在WCF能够从MSMQ获取消息方面,我遇到了一些问题 解决方案的结构是我们有“团队”。每个项目(在某种程度上)都体现了这一点。 团队只能访问他们需要的项目 因此: 输入消息项目(参考“消息”项目) 其中包含的类是从其自身类型的基类(在“Messages”项目中)派生的具体类。基类都在“Messages”项目中。例如: FirstReport -> FirstReportBase SecondRepor

我以前在一个原型项目中就能够做到这一点,但因为现在它正在“实施”项目中包含的其他内容,所以在WCF能够从MSMQ获取消息方面,我遇到了一些问题

解决方案的结构是我们有“团队”。每个项目(在某种程度上)都体现了这一点。 团队只能访问他们需要的项目

因此:

输入消息项目(参考“消息”项目)

其中包含的类是从其自身类型的基类(在“Messages”项目中)派生的具体类。基类都在“Messages”项目中。例如:

FirstReport -> FirstReportBase
SecondReport -> SecondReportBase
ThirdReport -> ThirdReportBase
每个基类都派生自“MainBase”。这也存在于“消息”项目中。 MainBase已使用KnownTypes属性修饰,并具有所有已知的基本类型。(FirstReportBase、SecondReportBase等)

然后我有一个wcfiimplementation.Messages项目,它引用了“Messages”和“IncomingMessaging”项目。 WCFImplementation.Messages项目有一个具体的类,用于WCF绑定到MSMQ的实际实现,如下所示:

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
public class InboundMessagingService : IInboundMessagingService
{
   [OperationBehavior(TransactionScopeRequired = true)]
   public void ProcessIncomingMessage(MsmqMessage<MainBase> msg) { ... }
}
控制台应用程序正在运行,我得到一个有故障的服务。无法读取队列上的消息!(毒药信息)

我错过了什么? IInboundMessagingService的接口是否必须用具体类修饰?我不能只使用基类吗


我以前使用过原型,因为我在接口中将混凝土(FirstReport)和基类(FirstReportBase)装饰为服务已知类型,但这是一个“松散”类型的项目结构,问题似乎是对象和子对象等。。。需要使用DataContract属性标记所有。 然后,主具体类/基类应该具有knowntypes属性,这些属性用该基类的子类即已知类型修饰

FirstReport fr = new FirstReport(....);