WebService参数为类的时候,如何方便快速对类进行赋值或者进行转换

问题描述

本意:这里想对参数进行赋值,通一个类型的参数myBUOperatorInfo为本地的类,有20来个属性myWSBUOperatorInfo为WebService的类。本想动态的从myBUOperatorInfo读取值赋值到myWSBUOperatorInfo类若类是本地的,怎么调用都可以,但是类是WebService的,死活不行,哪位高人能解决这个问题,请加我JiRiGaLa_Bao@Hotmail.com比较急。wsFormLogin.BUOperatorInfomyWSBUOperatorInfo=newwsFormLogin.BUOperatorInfo();this.ConvertData(myBUOperatorInfo,myWSBUOperatorInfo);调用wsFormLogin这个WebServicewsFormLogin.wsFormLoginmywsFormLogin=newwsFormLogin.wsFormLogin();mywsFormLogin.Load(myWSBUOperatorInfo);#regionprivateintSetClassValue(refObjectmyTargetObject,StringparamName,ObjectparamValue)设置对象的属性///<summary>///设置对象的属性///</summary>///<paramname="myTargetObject">目标对象</param>///<paramname="paramName">属性名称</param>///<paramname="paramValue">目标值</param>///<returns>影响的属性个数</returns>privateintSetClassValue(ObjectmyTargetObject,StringparamName,ObjectparamValue){intreturnValue=0;TypemyType=myTargetObject.GetType();FieldInfo[]myFieldInfo=myType.GetFields(BindingFlags.FlattenHierarchy|BindingFlags.Public|BindingFlags.Static|BindingFlags.NonPublic|BindingFlags.Instance);FieldInfomyCurrentFieldInfo;for(inti=0;i<myFieldInfo.Length;i++){if(paramName.Equals(myFieldInfo[i].Name)){myCurrentFieldInfo=myType.GetField(paramName);myCurrentFieldInfo.SetValue(myTargetObject,paramValue);returnValue++;break;}}returnreturnValue;}#endregion#regionpublicObjectCopyObjectValue(ObjectmyObject,ObjectmyTargetObject)复制类对象的对应的值///<summary>///复制类对象的对应的值///</summary>///<paramname="myObject">当前对象</param>///<paramname="myTargetObject">目标对象</param>///<returns>对象</returns>publicObjectCopyObjectValue(ObjectmyObject,ObjectmyTargetObject){intreturnValue=0;StringparamName=String.Empty;TypemyType=myObject.GetType();FieldInfo[]myFieldInfo=myType.GetFields(BindingFlags.FlattenHierarchy|BindingFlags.Public|BindingFlags.Static|BindingFlags.NonPublic|BindingFlags.Instance);FieldInfomyCurrentFieldInfo;for(inti=0;i<myFieldInfo.Length;i++){paramName=myFieldInfo[i].Name;myCurrentFieldInfo=myFieldInfo[i];returnValue=this.SetClassValue(myTargetObject,paramName,myCurrentFieldInfo.GetValue(myObject));}returnmyTargetObject;}#endregion#regionprivatevoidConvertData(BUOperatorInfomyBUOperatorInfo,wsFormLogin.BUOperatorInfomyWSBUOperatorInfo)转换数据///<summary>///转换数据///</summary>///<paramname="myBUOperatorInfo">操作员信息</param>///<paramname="myWSBUOperatorInfo">远程传递信息</param>privatevoidConvertData(BUOperatorInfomyBUOperatorInfo,wsFormLogin.BUOperatorInfomyWSBUOperatorInfo){this.CopyObjectValue(myBUOperatorInfo,myWSBUOperatorInfo);}#endregion

解决方案

解决方案二:
关注,帮顶........
解决方案三:
privateintSetClassValue(ObjectmyTargetObject,StringparamName,ObjectparamValue)这句里面ref怎么不见了?其他还没有看完。
解决方案四:
我也遇到过类似的问题因为Webservice有个get方法获取了Webservice那定义的类才可以实用要么就作字符串传递过去再处理一下
解决方案五:
你把WS反射回来的类删掉,再使用你的本地类不就行了??为什么要搞这么复杂?

时间: 2024-09-18 21:38:28

WebService参数为类的时候,如何方便快速对类进行赋值或者进行转换的相关文章

【C/C++学院】0825-类模板/final_override/类模板与普通类的派生类模板虚函数抽象模板类/类模板友元/位运算算法以及类声明/Rtti 实时类型检测/高级new创建/类以及函数包装器

类模板 类模板多个类型默认类型简单数组模板 #pragma once template <class T=int>//类模板可以有一个默认的值 class myArray { public: myArray(); ~myArray(); }; #include "myArray.h" template <class T=int>//每一个函数都需要加上一个默认的值 myArray<T>::myArray() //类模板成员函数在外部,需要加载类型初始

C#同一个名称空间里,两个类,A类中有个单击事件,B类有个方法

问题描述 C#同一个名称空间里,两个类,A类中有个单击事件,B类有个方法 怎么实现A中一单击就B中方法就执行????? 谢谢!!!!!!! 解决方案 a.Click += new EventHandler((se, ar) => { b.方法(参数...); }); 解决方案二: 事件不是A自己响应的,是A实例的持有者响应的. 到响应的地方去调用B实例的方法(除非是静态方法,普通方法必须有实例才能调用). 解决方案三: 在a的单击事件中写: new B().click(); 解决方案四: usi

Java Class类的使用 和 动态加载类

Class类 1)在面向对象的世界里,万事万物皆对象. 类是对象,类是java.lang.Class类的实例对象. There is a class named Class 2)Foo的实例对象如何表示 Foo foo1=new Foo();//foo1就表示出来了 Foo这个类也是一个实例对象,Class类的实例对象,如何表示呢? 任何一个类都是Class的实例对象,这个实例对象有三种表示方式 (1) 第一种表示方式--->实际在告诉我们任何一个类都有一个隐含的静态成员变量class Clas

hql语句查询实体类News的属性category为“生活类新闻”的LIST,HQL语句怎么写?

问题描述 hql语句查询实体类News的属性category为"生活类新闻"的LIST,HQL语句怎么写? 用SSH框架,写一个实现类,查询实体类News的属性category为"生活类新闻"的LIST 返回一个LIST,该怎么写???????????????????? 实体类为News 属性为category 数据库中表名为t_news category为属性 import java.util.List; import org.springframework.st

ASP.NET中实现根据匿名类、datatable、sql生成实体类

  这篇文章主要介绍了ASP.NET中实现根据匿名类.datatable.sql生成实体类,这个小小工具类非常实用,使用起来也很方便,需要的朋友可以参考下 在开发中可能会遇到这几种情况: 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类 为了解决上面的不便之处,我封装了一个实体生成类,可以扔到

基类-在MFC中如何使用自定义类

问题描述 在MFC中如何使用自定义类 我建立了MFC的对话框,并自定义了基类是static的派生类,在派生类中有自定义了许多函数,我在对话框中要使用该自定义类,怎么才能使用呢?工具条上没有该自定义的控件啊 解决方案 感觉你是想自定义控件,解决方法如下:1.新建一个MFC Application,选择Dialog based,其他一路默认就行了.2.把Custom Control 放到Dialog中.3.把控件属性Class,写成"MFCDiagramCtrl",这里很重要,如果不加,最

mfc入门-vs2010写mfc加了自己写额外写的类就出错了,添加的类没有问题

问题描述 vs2010写mfc加了自己写额外写的类就出错了,添加的类没有问题 写mfc加了自己写额外写的类就出错了,添加的类没有问题 解决方案 看不清,好像是你的构造函数重复了

MFC ADOC访问数据库用公共类报空指针异常,而不用公共类正常

问题描述 MFC ADOC访问数据库用公共类报空指针异常,而不用公共类正常 先建立了个公共类用于数据库连接查询如下ADOConn头文件#pragma once//导入AOC动态链接库#import ""C:Program FilesCommon FilesSystemadomsado15.dll"" no_namespace rename(""EOF""adoEOF"")rename(""

【C/C++学院】0817-递归汉诺塔 双层递归 /CPP结构体 /面向过程与面向对象的编程模式/类的常识共用体实现一个类的特征/QT应用于类以及类的常识

递归汉诺塔 双层递归 #include <iostream> void han(int n, char A, char B, char C) { static int num = 1; std::cout << "第" << num << "次"; num++; if (n<1) { return; } else { han(n - 1, A, C, B); std::cout << A <&l

class-关于类中建立另一个含有其他类对象的对象

问题描述 关于类中建立另一个含有其他类对象的对象 class FoodSeller:public Person//这个类要弄到animalfood和money类,创建对象来实施相应操作 class Zoo { public: Zoo(int =0,int=0,int=0,int=0); ~Zoo(); bool judgeStatus(); private: FoodSeller people; AnimalEnclosure ae[3]; }; #endif Zoo::Zoo(int p, i