这几乎是一个重复的问题,但我使用的不是Castle Dynamic Proxy,而是LinFu Getting underlying type of a proxy object
我正在使用自动映射程序创建接口代理,并将其发送到Asp.net MVC中的视图模型。我的问题是,根据我的判断,MVC的默认MetadataProvider通过在模型上调用.GetType()来查找属性和元数据。
因此,EditorFor()和DisplayFor()模板不会生成任何字段。我需要做的是找到代理目标类型,然后生成我的模板。我知道我可以解析名称并使用GetType( "thename“),但我想知道是否有一种简单的方法。
发布于 2010-03-01 05:45:47
LinFu.DynamicProxy不直接公开代理的底层对象。它只是将每个方法调用重定向到一个IInterceptor实现实例。为了访问底层对象,您必须确定当前拦截器实例是否实际具有目标类实例。
如果你在使用AutoMapper,AFAIK,他们使用LinFu.DynamicObject来做大量的鸭子绑定,在LinFu.DynamicObject生成的动态类型上调用GetType()甚至不会得到域模型中的实际类型-它只会得到一个由LinFu本身直接打包在一起的对象。
发布于 2010-02-22 19:39:47
获取最新的AutoMapper -它使用Castle Dynamic Proxy,您已经知道如何从那里获取它:)
https://stackoverflow.com/questions/2304091
复制相似问题