JsonSerializer.Deserialize 不适用于 class C#

JsonSerializer.Deserialize won't work in class C#

我正在尽我所能,但对象没有反序列化,我尝试了几乎所有可能的问题解决方案,但没有任何效果,如果有人可以提供帮助,那就太好了。 请看下面是代码的代码片段 它总是 returns 对我来说是空值。

using System;
using System.Text.Json;

namespace ConsoleApp8
{
    class Program
    {

        static void Main(string[] args)
        {
            var a = "{\"enrollmentType\":\"draft\",\"emrName\":\"accuro\",\"emrVersion\":\"v1\",\"workflowType\":\"coordinator\"}";
            var x = "{\"enrollmentType\":\"draft\",\"emrName\":\"accuro\",\"emrVersion\":\"v1\",\"workflowType\":\"coordinator\"}";
            string json = @"{""id"":10,""name"":""Name"",""revisionDate"":1390293827000}";

            
            var ed = JsonSerializer.Deserialize<EnrollmentExtension>(x);
            //.Replace("'", "\"")
            if (!string.IsNullOrWhiteSpace(ed.emrName))
            { }
        }
    }
    public class EnrollmentExtension
        {
            #region MyRegion
            private string _emrName;
            private string _emrVersion;
            private string _workflowType;
            private string _enrollmentType; public bool IsDraft()
            {
                return (string.Compare(_enrollmentType, "draft", true) == 0);
            }
        #endregion

            
            public string enrollmentType
            {
                get { return _enrollmentType; }
                private set { _enrollmentType = value; }
            }
            public string workflowType
            {
                get { return _workflowType; }
                private set { _workflowType = value; }
            }
            public string emrVersion
            {
                get { return _emrVersion; }
                private set { _emrVersion = value; }
            }
            public string emrName
            {
                get { return _emrName; }
                private set { _emrName = value; }
            }
            public void SetWorkflowType(string workFlowType)
            {
                _workflowType = workFlowType;
            }
        }
        public class Test
        {
            public EnrollmentExtension myprop { get; set; }
        }
    }

你的 类 中有一个错误,你所有的 setter 都是私有的,但应该是 public。所有属性应该是这样的

 public string enrollmentType
 {
      get { return _enrollmentType; }
      set { _enrollmentType = value; }
 }

或者您可以保留私有 setter 但创建一个构造函数

public  EnrollmentExtension(string enrollmentType, ... and so on,  string workflowType)
    {
        _enrollmentType=enrollmentType;
       _workflowType=workflowType;
      ... and so on
    }