当我通过WCF将此DTO发送到我的服务器端时,我收到此错误:
尝试序列化参数http://tempuri.org/:objects时出错。 InnerException消息是'Enum 值'3'对于类型'LPFLogger'无效,无法序列化。 确保存在必要的枚举值并标记 如果类型具有DataContractAttribute,则为EnumMemberAttribute属性 属性。'。有关详细信息,请参阅InnerException。
我的DTO没有DataContract属性我根本不使用它们。默认情况下不需要它。
为什么价值3成问题?因为我的枚举只有0,1,2?
public class MyObjectDTO
{
public int Id { get; set; }
public int Size { get; set; }
public LPFProcessor Processor { get; set; }
public LPFAccess Access { get; set; }
public LPFLogger Logger { get; set; }
}
public enum LPFLogger
{
None = 0,
EventLogger,
TempLogger
}
答案 0 :(得分:0)
请查看下面的代码,以检查枚举是否已经退出服务器端
private static LPFLogger GetLPFLogger(int value)
{
var lstEnum = Enum.GetValues(typeof(LPFLogger)).Cast<int>().ToList();
if (lstEnum.Any(s => s == value))
return (LPFLogger)value;
return LPFLogger.None;
}