Допустим, у меня есть такой класс:
public class Foo
{
public Foo {}
public int Titi { get; set; }
public int Toto { get; set; }
public int Tata { get; set; }
}
Я могу инициализировать новый экземпляр следующим образом:
var inst = new Foo { Titi = 12, Toto = 42, Tata = 421 };
Но как мне создать правильный дескриптор экземпляра, который выполняет ту же инициализацию, что и выше?
public class FooConverter : TypeConverter
{
// ...
public override object ConvertTo(ITypeDescriptorContext context,
CultureInfo culture,
object value,
Type destinationType)
{
if (destinationType == typeof(InstanceDescriptor) && value is Foo)
{
// Incorrect example because properties wont
// be initialized to 12, 42 and 421
var ctor = typeof(Foo).GetConstructor(Type.EmptyTypes);
return new InstanceDescriptor(ctor, null);
}
// ...
}
}
NB1: я спрашиваю об этом, потому что я хочу создать TypeConverter для класса 'Foo' и должен обеспечить преобразование в 'InstanceDescriptor'
NB2: Да, я могу добавить конструктор в класс Foo, который принимает 3 аргумента, но хотел бы избежать этого и также хотел бы знать, какое «описание конструкции» соответствует приведенному выше образцу.