这是我的数据合同:
[DataContract]
public class Claim : IDisposable
{
[DataMember]
public int ClaimID { get; set; }
[DataMember]
public Stream ClaimImage { get; set; }
[DataMember]
public int PageNumber { get; set; }
public void Dispose()
{
if (ClaimImage != null)
{
ClaimImage.Close();
ClaimImage = null;
}
}
}
[DataContract]
public class ClaimInformation
{
[DataMember]
public List<string> Documents { get; set; }
[DataMember]
public int TotalPages { get; set; }
}
我有一个 OperationContract,它接受一个“ClaimInformation”并返回一个“Claim”列表。这只是两个整数和一个分解为流的图像。
[OperationContract]
List<Claim> ProcessDocument(ClaimInformation ClaimInfo);
ProcessDocument 调用类中的方法。
public List<Claim> ProcessDocument(ClaimInformation ClaimInfo)
{
List<Claim> FinishedClaimList = new List<Claim>();
Document doc = new Document();
FinishedClaimList = doc.ProcessDocument(ClaimInfo);
return FinishedClaimList;
}
该方法太大,我无法在此处发布。但这只是:
public List<Claim> ProcessDocument(ClaimInformation ClaimInfo)
{
在该方法内部,它创建一个新的“Claim”并将其添加到“ClaimList”中。
ClaimList.Add(new Claim { ClaimID = ClaimID, ClaimImage = this.GetStream(newdoc.FullName), PageNumber = pageNum });
最后,这就是我所说的一切:
OCREngine.IEngine engine = new OCREngine.EngineClient();
OCREngine.ClaimInformation CI = new ClaimInformation();
CI.Documents = ImageNames;
CI.TotalPages = cc.lbClaims.Items.Count;
ClaimList.Add(engine.ProcessDocument(CI));
我只是为服务创建一个新客户端,然后实例化一个新的 ClaimInformation DataContract。我设置了 ImageNames 属性,它只是一个字符串列表,然后我将一个整数添加到 TotalPages。
关于我在这里做错了什么的任何想法?