我有以下几点:
[Serializable]
public class SimulationException : Exception
{
public SimulationExceptionStatusCode StatusCode { get; set; }
public SimulationException()
{ }
public SimulationException(string msg) : base(msg)
{ }
protected SimulationException(SerializationInfo info, StreamingContext context)
: base(info, context)
{ }
}
[Serializable]
public enum SimulationExceptionStatusCode
{
SimulationInstanceNotExist,
LocationNotExist,
InvalidOperation,
GeneralError
}我在客户端-服务器wcf中使用以下代码在错误和异常之间进行转换:Converting Fault to exceptions
问题是,当我使用以下代码将异常转换为错误时:
// converting to error to falut message Fault
MessageFault messageFault = MessageFault.CreateFault(
new FaultCode("Sender"),
new FaultReason(error.Message),
error,
new NetDataContractSerializer());
fault = Message.CreateMessage(version, messageFault, null);枚举没有被序列化,当我反序列化时,我得到了枚举的默认值。
我遗漏了什么?
发布于 2013-06-26 22:49:48
使用EnumMemeber来装饰它,如下所示
[DataContract(Name = "SimulationExceptionStatusCode")]
public enum SimulationExceptionStatusCode
{
[EnumMember]
SimulationInstanceNotExist,
[EnumMember]
LocationNotExist,
[EnumMember]
InvalidOperation,
[EnumMember]
GeneralError
}发布于 2013-06-26 23:14:07
我也有同样的问题。
我做了一个简单的变通办法,可能对你有好处,当发送枚举时,转换为int/string,发送int/string (在数据契约中-我在WCF中传递了它),然后在服务中,将int/string转换为枚举。
当转换回枚举时,使用
Enum.Parse(..)https://stackoverflow.com/questions/17323341
复制相似问题