Вы можете сделать что-то , например, :
using System;
using Newtonsoft.Json;
public class Program
{
public static void Main()
{
//setup
var a = new Include{Type = "Baz", Attributes = new Baz{Prop1 = "hello"}};
//convert
var b = Convert.ChangeType(a.Attributes, Type.GetType(a.Type));
//use
Console.WriteLine(b.Prop1);
}
}
public class Include
{
[JsonProperty("type")]
public string Type { get; set; }
[JsonProperty("attributes")]
public dynamic Attributes { get; set; }
}
public class Baz
{
public string Prop1 { get; set; }
}
Convert.ChangeType
позволит вам преобразовать объект Dynami c в любой тип, которым он должен быть. Однако вы все равно можете обнаружить, что находитесь в том же месте, что и @ ответ BraianM , и вам придется ввести проверку, чтобы вы знали, что свойство или метод есть.
Вы также можете посмотреть на JsonConverter . Возможно, там есть что-то, что могло бы помочь.