【发布时间】:2016-06-09 08:31:31
【问题描述】:
[编辑]:我添加了 TokenType 枚举,是什么导致了整个问题...
我在使用 WCF 时遇到问题,很遗憾我没有找到任何有用的帮助。 我正在创建一个基于 WCF 的应用程序。当服务器响应客户端的请求时,我想要发回以下类:
[DataContract]
public enum TokenType
{
User,
Device
}
[DataContract]
public class AuthenticationResponse
{
[DataMember]
public LogonStatus Status { get; set; }
[DataMember]
public AccessToken Token { get; set; }
}
[DataContract]
public struct AccessToken
{
[DataMember]
public string TokenID
{
get;
set;
}
[DataMember]
public TokenType Type
{
get;
set;
}
[DataMember]
public string Uid
{
get;
set;
}
[DataMember]
public string Name
{
get;
set;
}
[DataMember]
public DateTime ExpirationTime
{
get;
set;
}
[DataMember]
public DateTime GenerationTime
{
get;
set;
}
[DataMember]
public bool IsExpired
{
get
{
return DateTime.Now > this.ExpirationTime;
}
}
}
当我将 AuthenticationResponse 发送回客户端时,它总是失败。 我的问题:是否有机会在 DataContract 对象中使用类/结构对象,或者我是否必须将 AccessToken 对象替换为 AuthenticationResponse 对象中的基本类型(例如字符串)?
感谢您的所有帮助! 最好的问候
加博
【问题讨论】:
-
什么样的“失败”?
-
服务器向客户端发送数据失败,直到 [DataMember] public AccessToken Token { get;放; } 在 AuthenticationResponse 类中不为空。如果它为 null 或使用字符串类型属性更改,则一切正常。
标签: c# wcf object datacontract datamember