在我的 WCF Web 服务上使用我的一种 Web 方法时,我收到了那个奇妙的模棱两可的错误消息。由于该错误消息没有提供任何解释,因此我可以发表我的理论。
我相信这可能与我正在使用的返回类型有关
我有一个类型 DLL,它在 web 服务和客户端中都被引用。在这个 DLL 中是基类 ExceptionMessages。这个类有一个名为 DrawingExcepions 的子类。
这是一些代码:
public class ExceptionMessages
{
public object[] ReturnValue { get; set; }
}
public class DrawingExceptions : ExceptionMessages
{
private List<DrawingException> des = new List<DrawingException>();
}
public class DrawingException
{
public Exception ExceptionMsg { get; set; }
public List<object> Errors { get; set; }
}
使用代码:
[OperationContract]
ExceptionMessages createNewBom(Bom bom, DrawingFiles dfs);
public ExceptionMessages createNewBOM(Bom bom, DrawingFiles dfs)
{
return insertAssembly(bom, dfs);
}
public DrawingExceptions insertAssembly(Bom bom, DrawingFiles dfs)
{
DrawingExceptions des = new DrawingExceptions();
foreach (DrawingFile d in dfs.drawingFiles)
{
DrawingException temp = insertNewDrawing(bom, d);
if (temp != null)
des.addDrawingException(temp);
if (d.Child != null)
des.addDrawingException(insertAssembly(bom, d.Child));
}
return des;
}
返回:
ExceptionMessages ems = client.createNewBom(bom, currentDFS);
if (ems is DrawingExceptions) { }
基本上,webmethod 的返回类型是 ExceptionMessages 但是我通常会将子类发送回来。
我唯一的想法是导致错误的是孩子,但据我所知,这应该没有效果。有没有人知道这里可能出了什么问题?
如果需要更多信息,请询问:)
谢谢。