gpt4 book ai didi

c# - YamlDotNet 找不到属性

转载 作者:行者123 更新时间:2023-12-03 17:17:02 29 4
gpt4 key购买 nike

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

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

Property 'HtmlTemplate' not found on type 'ConsoleApplication1.Repositories.YamlTemplateRepository+DeserializeableTemplate'.



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

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

调用 YamlDotNet 的代码如下所示:
deserializer.Deserialize<DeserializeableTemplate>(yamlContents);

我正在反序列化的类如下所示:
private class DeserializeableTemplate : Template
{
[YamlMember(Alias = "HtmlTemplate")]
public string HtmlTemplateWrapper
{
get { return HtmlTemplate; }
set { HtmlTemplate = value; }
}

// A few more properties...
}

和我继承的类(class):
public class Template
{
public string HtmlTemplate { get; internal set; }
// A few more properties...
}

( Small console test application with the same error can be found here )

最佳答案

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

关于c# - YamlDotNet 找不到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41300528/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com