C# 为什么我的WebGet返回一个空类

C# 为什么我的WebGet返回一个空类,c#,json,xml,wcf,rest,C#,Json,Xml,Wcf,Rest,当我试图检索一个充满数据的类时,我从未检索到正确的数据。下面类中的布尔值总是返回false 当我从Chrome的Postman调用相同的GetState函数时,没有做任何更改,我确实得到了预期的结果 我有一个类似wich的类,看起来像这样: [DataContract] public class State { [DataMember] public bool Camera_1_Ok { get; s

当我试图检索一个充满数据的类时,我从未检索到正确的数据。下面类中的布尔值总是返回false

当我从Chrome的Postman调用相同的
GetState
函数时,没有做任何更改,我确实得到了预期的结果

我有一个类似wich的类,看起来像这样:

        [DataContract]
        public class State
        {
            [DataMember]
            public bool Camera_1_Ok { get; set; }
            [DataMember]
            public bool Camera_2_Ok { get; set; }
            [DataMember]
            public bool Camera_3_Ok { get; set; }
        }
        [ServiceContract]
        interface IConnectionService
        {
            [OperationContract]
            [WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetState", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml)]
            State GetState();
        }
        [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
        public sealed class WCFServer : IConnectionService
        {
            public State GetState()
            {
                State tempState = new State();
                State.Camera_1_OK = true;
                State.Camera_2_OK = true;
                State.Camera_3_OK = true;

                return tempState;
            }
我的ServiceContract界面如下所示:

        [DataContract]
        public class State
        {
            [DataMember]
            public bool Camera_1_Ok { get; set; }
            [DataMember]
            public bool Camera_2_Ok { get; set; }
            [DataMember]
            public bool Camera_3_Ok { get; set; }
        }
        [ServiceContract]
        interface IConnectionService
        {
            [OperationContract]
            [WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetState", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml)]
            State GetState();
        }
        [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
        public sealed class WCFServer : IConnectionService
        {
            public State GetState()
            {
                State tempState = new State();
                State.Camera_1_OK = true;
                State.Camera_2_OK = true;
                State.Camera_3_OK = true;

                return tempState;
            }
GetState实现如下所示:

        [DataContract]
        public class State
        {
            [DataMember]
            public bool Camera_1_Ok { get; set; }
            [DataMember]
            public bool Camera_2_Ok { get; set; }
            [DataMember]
            public bool Camera_3_Ok { get; set; }
        }
        [ServiceContract]
        interface IConnectionService
        {
            [OperationContract]
            [WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetState", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml)]
            State GetState();
        }
        [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
        public sealed class WCFServer : IConnectionService
        {
            public State GetState()
            {
                State tempState = new State();
                State.Camera_1_OK = true;
                State.Camera_2_OK = true;
                State.Camera_3_OK = true;

                return tempState;
            }
我确保服务的双方都有相同的“State”类和相同的“IConnectionService”接口

为什么返回到调用机器的类中的布尔值从未设置?当我从Chrome或Postman调用函数时,我怎么能得到正确的数据呢

类似问题的回答者提到了
[DataContract]
[DataMember]
属性,但我已经将它们添加到了我的类中

PS:当我在服务的两侧将
ResponseFormat
设置为
WebMessageFormat.Json
时,我得到了预期的数据。遗憾的是,这将不是解决方案,因为请求了
Xml
格式

BodyStyle = WebMessageBodyStyle.Bare
然后从函数返回System.IO.Stream


之后,尝试在接收方反序列化您的流。

使用Fiddler检查请求,并找出在两种情况下发出请求时它们的不同之处。另外,尽量不要设置responseformat,让框架来处理它。它从“Accept”响应头决定响应格式,并以适当的格式返回。我找不到与fiddler的任何区别,除非它的内容类型是Json或XML格式。所以这里没有运气。你能发布你的配置是什么样子的吗?