无法让 Nest.PropertyName 被考虑用于嵌套

Can't get Nest.PropertyName to be considered for nested

我有一种弹性条目,它由一些重叠的属性组成,例如

{
    "_source":
    {
        "pipeline_version":1.7,
        "agent":{
            "hostname":"SFPWEW11616",
            "id":"a1df2f4e-6dde-43fd-8af6-b3726124fdf7",
            "type":"winlogbeat",
            "ephemeral_id":"78be9770-dab9-4c56-a67e-b1a372a2f899",
            "version":"7.5.1"
        }
    }, [...]
}

我正在尝试让我的 POCO 代表这个对象的平面视图。根据我在文档中找到的内容,我尝试做一些类似

的事情
Friend Class ElasticEventLogEntry
  <Nest.PropertyName("agent.hostname")>
  Public Property AgentHostName As String
  [...]
End Class

但无论我怎么尝试,这个值总是空的。我看过其他一些使用 NestedAttribute 属性的帖子,但据我所知,这仅在我们还想在我们的 POCO 结构中创建嵌套对象时才有用,这不是我的情况。我错过了什么?

不可能做你想做的事,至少如果不为你的 ElasticEventLogEntry 类型编写你自己的 JSON 序列化并与 JsonNetSerializer 挂钩是不可能的。

更好的方法是 ElasticEventLogEntry 以不同的方式建模

Public Class ElasticEventLogEntry
    <DataMember(Name:="pipeline_version")>
    Public Property PipelineVersion As String
    Public Property Agent As Agent
End Class

Public Class Agent
    Public Property Hostname As String
    Public Property Id As String
    Public Property Type As String
    <DataMember(Name:="ephemeral_id")>
    Public Property EphemeralId As String
    Public Property Version As String
End Class

然后代理主机名将被反序列化为.Agent.Hostname