Учитывая object
, это может быть что-то вроде
[TypeIdentifier("foo")]
public class Foo
{
public string Thingy { get; }
public int Blah { get; }
pulic Foo(Thingy thingy, Blah blah)
{
this.Thingy = thingy ?? throw new ArgumentNullException(thingy);
this.Blah = blah ?? throw new ArgumentNullException(blah);
}
}
Я хочу, чтобы во время выполнения генерировать тип типа
public class FooShadow_ec3dddf4
{
public string Thingy { get; }
public int Blah { get; }
public string TypeId { get => "foo"; }
pulic FooShadow_ec3dddf4(Thingy thingy, Blah blah)
{
this.Thingy = thingy ?? throw new ArgumentNullException(thingy);
this.Blah = blah ?? throw new ArgumentNullException(blah);
}
}
и фактически генерировать экземпляр этого типа с помощьюодинаковые значения свойств для Thingy
и Blah
.
Impl:
public static object CreateTypedShadow(this object obj)
{
// ...
}
Использование:
var shadow = obj.CreateTypedShadow();
Я знаю, что это возможно при использовании таких функций, как TypeBuilder
но довольно сложно, поэтому мне интересно, есть ли ярлык для этого точного сценария.