Classes referenced by generic type:
public class Cat
{
...
}
public class Dog
{
...
}
Generic class:
public class Animals<T>
{
public Animals(int id, T body)
{
Id = id;
Body = body;
}
public int Id { get; set; }
public T Body { get; set; }
}
Create instance for generic class dynamically:
using System;
using Newtonsoft.Json;
namespace RtxService.Api
{
public class Program
{
public static void Main(string[] args)
{
var cat = new Cat()
{
...
};
var type = typeof(Cat);
var genericType = typeof(Animals<>).MakeGenericType(type);
var animal = Activator.CreateInstance(
genericType,
1,
JsonConvert.DeserializeObject(cat, type));
}
}
}