0
通用類屬性調用WCF方法我有下面的類:與反射
Public Class WcfClient(Of T)
Private _Cliente As T
Public ReadOnly Property Client As T
Get
Return _Cliente
End Get
End Property
T,表示WCF頻道,也就是像這樣創建的:
Dim channel As New ChannelFactory(Of T)(basicHttpBinding, remoteAddress)
'Set the property
_Cliente = channel.CreateChannel()
現在,隨着反射,我正在創建一個WcfClient的實例,並且我想執行一個位於客戶端屬性中的方法。
Type tipo = FindInterface(Request.GetFriendlyUrlSegments()[0]);
Type genType = typeof (WcfClient<>).MakeGenericType(tipo);
var client = Activator.CreateInstance(genType);
var clientProp = client.GetType().
GetProperties().Where(p => p.Name == "Client").FirstOrDefault();
if (clientProp != null)
{
var method =clientProp.PropertyType
.GetMethod(Request.GetFriendlyUrlSegments()[1]);
ProcesoBase procesoBase = new ProcesoBase();
foreach (var prop in typeof (ProcesoBase).GetProperties())
{
//Here we have some code to fill ProcesoBase properties
}
}
var result = method.Invoke(clientProp, new object[] { procesoBase });
當調用method.Invoke我得到Object does not match target type
異常
我從clientProp變量獲取MethodInfo的類,所以我不明白這是怎麼發生的。
難道這是因爲生成的Channel類構建爲proxy_TransparentProxy類嗎?