Я хотел бы спросить, есть ли библиотека, которая позволяет генерировать реализацию интерфейса во время выполнения с некоторыми дополнительными функциями, показанными ниже.
Допустим, у меня есть такой интерфейс:
interface ICustomer
{
string Name {get;set;}
string IAddress { get;set; }
}
interface IAddress
{
string Street {get;set;}
}
Я хотел бы сделать что-то вроде этого:
ICustomer customer = someLibrary.Create<ICustomer>(bool createSubObjects)
где метод Create<T>()
создаст такую реализацию во время выполнения:
class RuntimeCustomer : NotifyPropertyChanged,ICustomer
//NotifyPropertyChanged would be hand written class
{
string name;
IAddress address = new RuntimeAddress();
//if createSubObjects == false then `IAddress address = null`
public string Name
{
get { return name; }
set { SetProperty(ref name, value); }
}
public IAddress Address
{
get { return address; }
set { SetProperty(ref address, value) }
}
}
class RuntimeAddress : NotifyPropertyChanged, IAddress
{
string street;
public string Street
{
get { return street; }
set { SetProperty(ref,street, value) }
}
}
Любая идея, пожалуйста?