.net动态调用webservice时,如果参数为实体怎么处理
.net动态调用webservice时,如果参数为实体怎么办?
/生成代理实例,并调用方法
System.Reflection.Assembly assembly = cr.CompiledAssembly;
Type t = assembly.GetType(@namespace + "." + classname, true, true);
object obj = Activator.CreateInstance(t);
System.Reflection.MethodInfo mi = t.GetMethod(methodname);
return mi.Invoke(obj, args);
args 这个object对象怎么转换为服务端自定义的传入类?
所传入的参数是服务端的实体类,在直接引用服务的时候可以取到这个实体类然后赋值再传进去。动态的话怎么得到服务端的实体类?然后作为参数再调用方法?
现在我不知道怎么给那个类赋值,再拿到赋完值的实体类!!
求大神
------解决思路----------------------
有个想法,但是没实验过
WebService中的每个实体定义都是能拿到的,解析那个wsdl文件, 根据文件中的定义, 使用System.Reflection.Emit命名空间中的工具类(如AssemblyBuilder, TypeBuilder, ModuleBuilder等等)动态生成一个TypeBuilder,用这个TypeBuilder生成成一个Type,通过反射向各属性赋值后调用服务方法.
/生成代理实例,并调用方法
System.Reflection.Assembly assembly = cr.CompiledAssembly;
Type t = assembly.GetType(@namespace + "." + classname, true, true);
object obj = Activator.CreateInstance(t);
System.Reflection.MethodInfo mi = t.GetMethod(methodname);
return mi.Invoke(obj, args);
args 这个object对象怎么转换为服务端自定义的传入类?
所传入的参数是服务端的实体类,在直接引用服务的时候可以取到这个实体类然后赋值再传进去。动态的话怎么得到服务端的实体类?然后作为参数再调用方法?
现在我不知道怎么给那个类赋值,再拿到赋完值的实体类!!
求大神
------解决思路----------------------
有个想法,但是没实验过
WebService中的每个实体定义都是能拿到的,解析那个wsdl文件, 根据文件中的定义, 使用System.Reflection.Emit命名空间中的工具类(如AssemblyBuilder, TypeBuilder, ModuleBuilder等等)动态生成一个TypeBuilder,用这个TypeBuilder生成成一个Type,通过反射向各属性赋值后调用服务方法.