YamlDotNet 找不到属性

Joh*_*dal 5 c# yamldotnet

我正在尝试创建一个简单的模型,用于使用YamlDotNet将 yaml 文件解析为我的域对象。需要注意的是,我希望域模型是只读的,所以我试图通过继承和内部设置器来解决这个问题。

但出于某种原因,库抛出了一个异常,说明:

在类型“ConsoleApplication1.Repositories.YamlTemplateRepository+DeserializeableTemplate”上找不到属性“?HtmlTemplate”。

我正在使用别名,但即使刮擦它,并且使用具有正确属性名称的测试类也不能正确设置。

我究竟做错了什么?我是否误解了图书馆应该如何使用?

调用 YamlDotNet 的代码如下所示:

deserializer.Deserialize<DeserializeableTemplate>(yamlContents);
Run Code Online (Sandbox Code Playgroud)

我正在反序列化的类如下所示:

private class DeserializeableTemplate : Template
{
  [YamlMember(Alias = "HtmlTemplate")]
  public string HtmlTemplateWrapper
  {
    get { return HtmlTemplate; }
    set { HtmlTemplate = value; }
  }

  // A few more properties...
}
Run Code Online (Sandbox Code Playgroud)

和我继承的课程:

public class Template
{
  public string HtmlTemplate { get; internal set; }
  // A few more properties...
}
Run Code Online (Sandbox Code Playgroud)

(可以在此处找到具有相同错误的小型控制台测试应用程序)

Gli*_*fie 2

老问题,但我有一个类似的问题,通过将继承的属性设置器的访问修饰符更改为protected. 我猜测internal这里使用的修饰符是在反序列化上耍花招。对于使模型真正只读的问题,这可能是一个不需要的解决方案,但我想为将来的故障排除人员分享我的解决方案。