优秀的编程知识分享平台

网站首页 > 技术文章 正文

在 C# .NET 中读写 YAML(c#怎么读取输入)

nanyue 2025-05-08 04:00:12 技术文章 3 ℃

YAML 是一种专门用来写配置的语言,简单而强大,比Json要方便!但在.Net 框架下,很多的配置还是XML格式的,比如项目文件.csproj;直到.NetCore 出现后,使用Json格式代替了许多XML格式。

但既然YAML这么流行,我们还是有必要了解一下,说不定以后要用呢==。

引入 YamlDotNet 包

YamlDotNet 是一个可用于netstandard 和 CLR的YAML库,它提供了一个类似于XMLDocument 的对象模型,支持读取、写入、解析和序列化。

Install-Package YamlDotNet

反序列化YAML

要将YAML反序列化为POCO对象,还是很简单的。假如我们有一个如下所示的YAML文件:

databaseConnectionString: Server=.;Database=myDataBase;
uploadFolder: /uploads/
approvedFileTypes : [.png, .jpeg, .jpg]

反序列化代码如下:

var deserializer = new YamlDotNet.Serialization.DeserializerBuilder()
    .WithNamingConvention(CamelCaseNamingConvention.Instance)
    .Build();
var myConfig = deserializer.Deserialize<Configuration>(File.ReadAllText("config.yaml"));

序列化YAML

同样,要将对象序列化为YAML也是非常简单。C#对象如下:

class Configuration
{ 
    public string DatabaseConnectionString { get; set; }
    public string UploadFolder { get; set; }
    public List<string> ApprovedFileTypes { get; set; }
}

序列化代码如下:

var config = new Configuration();
var serializer = new SerializerBuilder()
    .WithNamingConvention(CamelCaseNamingConvention.Instance)
    .Build();
var stringResult = serializer.Serialize(config);

怎么样,是不是很简单?不过有一点要注意,即使一个对象是空的,也会被序列化。

Tags:

最近发表
标签列表