2014-10-18 57 views
1
ProxyGenerator generator = new ProxyGenerator(); 
var interceptor = new StandardInterceptor(); 
MyInterfaceImpl test = (MyInterfaceImpl)generator.CreateClassProxy(typeof(MyInterfaceImpl), interceptor); 

在上例中,test對象是代理對象,假設它是由第三方創建的。城堡動態代理對象原始對象轉換

我無法傳遞給WCF操作合同,因爲它的類型不是MyInterfaceImpl,而是MyInterfaceImpl,但它是MyInterfaceImplProxy

如何將test對象轉換爲MyInterfaceImpl類型?請幫忙。

回答

2

我已經找到答案here

internal static TType UnwrapProxy<TType>(TType proxy) 
{ 
    if (!ProxyUtil.IsProxy(proxy)) 
     return proxy; 

    try 
    { 
     dynamic dynamicProxy = proxy; 
     return dynamicProxy.__target; 
    } 
    catch (RuntimeBinderException) 
    { 
     return proxy; 
    } 
} 
+1

在我的情況下,我需要dynamicProxy .__攔截器 – 2017-11-22 23:34:50