首页 / 问答 / C#&.NET/.NET 6应用程序如何将一个C#的Class类的源文件动态(运行时)转换成JSON字符串呢?

C#&.NET/.NET 6应用程序如何将一个C#的Class类的源文件动态(运行时)转换成JSON字符串呢?

.NET C# .NET Core JSON 1.37K 次浏览
0

如题,在C#&.NET/.NET 6应用程序中,如何将一个C#的Class类的源文件动态(运行时)转换成JSON字符串呢?

比如有一个包含C#源代码的Customer.txt文件,代码如下:

public class Customer
{
    public Customer()
    {
        Addresses = new List<Address>
        {
            new()
        };
    }
    public int Id { get; set; }
    public string Name { get; set; }
    public List<Address> Addresses { get; set; }
}

public class Address
{
    public Address()
    {
        Contact = new Contact();
    }
    public string Province { get; set; }
    public string City { get; set; }
    public Contact Contact { get; set; }
}

public class Contact
{
    public int Id { get; set; }
    public string Phone { get; set; }
}

如何将以上定义的C#类转换成对应的JSON对象呢?

期望的结果是:

{
  "id": 0,
  "name": null,
  "addresses": [
    {
      "province": null,
      "city": null,
      "contact": {
        "id": 0,
        "phone": null
      }
    }
  ]
}
回复 [×]
提交评论
请输入评论内容

1 个回答

  • 0

    在.NET 5或者以上版的C#程序中,可以使用Microsoft.CodeAnalysis.CSharp命名空间下的CSharpCompilation类的Create()方法来实例化一个CSharpCompilation对象,然后调用Emit()方法进行编译,示例代码如下:

    运行结果:

    Rector的个人主页

    Rector

    2022-05-28 回答

    我来回答