在使用我的WCF webservice上的一个webmethod时,我遇到了一个非常模糊的错误信息。由于该错误消息没有任何解释,让我来发表一下我的看法。
我认为这可能与我正在使用的返回类型有关。
我有一个Types DLL,它被webservice和客户端引用。在这个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,但我通常会发送子类的返回值。
我的唯一想法是子类可能会导致错误,但就我所知,这不应该产生影响。有没有人知道这里可能出了什么问题?
如果需要更多信息,请随时提问 :)
谢谢。