我想問問有沒有一個庫允許在運行時生成接口實現,並具有下面所示的一些附加功能。在運行時生成接口實現
比方說,我有這樣的接口:
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) }
}
}
有什麼想法嗎?
也許這樣的事情http://www.castleproject.org/projects/dynamicproxy/ – jure
@jure能否請你說明如何在這種情況下使用呢?我之前在Castle和LinFu上看過,但是對於這種情況 – user2542183