0
有没有什么方法可以根据对象的类型来推断对象的接口。举例来说,如果我有以下对象:在编译时按类型推断接口
public class Person
{
public string FirstName
{ get; set; }
public string LastName
{ get; set; }
}
我希望能够推断出该接口:
public interface IPerson
{
string FirstName
{ get; set; }
string LastName
{ get; set; }
}
我想要做的是能够创建一个通用的代理工厂,使用reflection.emit,它在编译时遵循推断的接口。我知道我可以用所有对象的属性返回一个动态对象,但是这些都是在运行时与编译时处理的。
编辑
什么我想要实现多一点的解释。我想创建一个具有法的签名像这样的代理类:
public T GetProxyFor<U>(U SomeObject);
这样,用户可以调用GetProxyFor(人),并得到一个PeopleProxy对象将实现人民的对象的属性(或任何其他物体)。这样,使用此代码的人可以调用PeopleProxy.LastName,并且这将成功编译,但对PeopleProxy.Age的调用在编译后会导致错误,因为它不存在。
我是相当新的反射和发射,所以我想要的可能是不可能的。
你的目标是什么?你是否试图构建一个代码生成器来创建该接口作为代码文件?或者你是否试图在运行代码的内部构建一个接口?或者是其他东西? –
我推荐T4。 –
@JoeEnos,我在原始文章中添加了一个编辑,希望更详细地解释我的问题。 – divinebovine