WCF:递归调用服务

时间:2013-11-26 14:06:29

标签: c# wcf recursion

我有一个WCF服务。

[ServiceContract(ConfigurationName="WebEntityService")]
[ServiceKnownType(typeof(WcfEntityService.TH.Category))]
public interface IEntityService {
    [OperationContract(IsOneWay=true)]
    void ScanEntity(ScanInfo scanInfo, WebEntityBase entity);
}

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class EntityService : IEntityService {
   [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
   public void ScanEntity(ScanInfo scanInfo, WebEntityBase entity) {
       try {
           WebScanner webScanner = new WebScanner(entity);
           webScanner.Scan(scanInfo);
           }
       catch (Exception) {
                throw;
            }
        }
}

WcfEntityService.TH.Category类继承自WebEntityBase并放在不同的程序集中。该类具有对WCF服务的服务引用,并以递归方式调用ScanEntity。

问题是如下。 当WcfEntityService.TH.Category类调用ScanEntity时,我发生序列化错误。

  

不希望输入数据合约名称为“类别:http://schemas.datacontract.org/2004/07/WcfEntityService.TH”的“WcfEntityService.TH.Category”。考虑使用DataContractResolver或将任何静态未知的类型添加到已知类型列表中 - 例如,使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中。

有人能说有什么方法可以解决这个问题吗?

0 个答案:

没有答案