C#学习(9):通过反射设置泛型类型的属性及值

1.引用

1 IResult result = ExecuteDmsParam<DMSParam, ORD_PurchaseParam>(dmsParam, purchaseParam, "HQBuy.MVC.BLL.Member.ORD.ORD_PurchaseBLL", "GetPurchaseByPNO");

2.方法

        public IResult ExecuteDmsParam<T1, T2>(T1 t1, T2 t2, string ClassName, string MethodName)
        {
            Type type = t1.GetType();
            if (type.GetProperties() != null && type.GetProperties().Length > 0)
            {
                foreach (var propertie in type.GetProperties())
                {
                    if (!string.IsNullOrEmpty(propertie.Name))
                    {
                        switch (propertie.Name)
                        {
                            case "AssemblyName":
                                t1.GetType().GetProperty(propertie.Name).SetValue(t1, "HQBuy.MVC.BLL.Member.dll");
                                break;
                            case "ClassName":
                                t1.GetType().GetProperty(propertie.Name).SetValue(t1, ClassName);
                                break;
                            case "MethodName":
                                t1.GetType().GetProperty(propertie.Name).SetValue(t1, MethodName);
                                break;
                            case "Param":
                                t1.GetType().GetProperty(propertie.Name).SetValue(t1, t2);
                                break;
                        }
                    }
                }
            }
            IResult result = ExecuteBLL.Execute((IParam)t1);
            if(result.Complete == DMSComplete.Succeed)
            {
                ConditionResult<ORD_Purchase> purchaseCondition = new ConditionResult<ORD_Purchase>();
                if (result.Result != null)
                {
                    purchaseCondition = (ConditionResult<ORD_Purchase>)result.Result;
                    List<ORD_Purchase> purchaseList = (purchaseCondition).ResultList;
                }
            }
            return result;
        }
时间: 2024-10-11 10:34:23

C#学习(9):通过反射设置泛型类型的属性及值的相关文章

反射学习2-通过反射机制动态获取属性的值模拟Struts的自动赋值

一.准备知识:   Java反射机制   处理事务的JavaBean   String的操作常用方法 二.模拟步骤   这里我们通过反射机制动态获取属性的值模拟Struts中的自动赋值. 1.首先创建一个简单的User类包含两个属性username和userid以及getter.setter方法: class User {     public User(){} private String username; private String userid; public String getUs

java反射获得运行时属性的值

运行时动态获得属性的值(通过方法获得): Method[] methods = cls.getDeclaredMethods(); for (Method method : methods) { if (method.getName().startsWith("get")) { try { System.out.println(method.invoke(object)); } catch (Exception e) { } } } 运行时动态获得属性的值(通过属性获得): for (

疯狂java学习笔记之面向对象(三) - 方法所属性和值传递

方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调用者) 1 public class MathTest{ 2 public static void main(String[] args){ 3 System.out.println(Math.sin(1.57)); 4 System.out.println(Math.sin(Math.PI/2))

【Java 反射学习】Java 反射基础

知识点 类是用来描述对象的,而反射就可以理解为是用来描述类的. 类中的属性包括: Class 类本身 Package 类所在的包 Field 类中的属性 Method 类中的方法 Constructor 类中的构造方法 Annotation 类中的注解 如何获取Class 1.Class的静态方法,forName("全类名") 2.类.class关键字 3.对象引用.getClass()方法 Object中的方法 Class中的常用方法 /* 0--默认不写 1--public 2--

jQuery学习笔记(4)-设置元素的属性和样式

一.前言 本篇主要讲解如何使用jQuery获取和操作元素的属性和css样式 二."DOM属性"与元素属性 1.运行一下代码 <img src="/images/logo_small.gif" class="img_logo" /> 2.分析代码 元素属性src:/images/logo_small.gif 元素属性class:img_logo DOM属性currentSrc:http://localhost/images/logo_s

Swift学习(4懒加载、计算型属性、反射机制)

懒加载.计算型属性.反射机制 1.懒加载: 目的:1.延迟创建,需要时加载,节省内存空间 2.避免开发中处理解包的问题(重要!!!) 知识:1.所有的UIView 及子类在开发是,一旦重写了够着函数,必须要实现initwithcoder函数以保证提供两个通道,目前Xcode会有提示. 2.在swift中懒加载的简单写法 lazy var label:UILabel = UILabel() 3.懒加载本质上是一个闭包,完整写法如下: {}包装代码  ()执行代码 lazy var labe = {

学习系列之反射

一 反射概述 反射是一种机制,通过这种机制我们可以知道一个未知类型的类型信息.比如,有一个对象a,这个对象不是我们定义的,也许是通过网络捕捉到的,也许是使用泛型定义的,但我们想知道这个对象的类型信息,想知道这个对象有哪些方法或者属性什么的.甚至我们想进一步调用这个对象的方法.关键是现在我们只知道它是一个对象,不知道它的类型,自然不会知道它有哪些方法等信息.这时我们该怎么办?反射机制就是解决这么一个问题的.通过反射机制我们可以知道未知类型对象的类型信息,并且使用它  ·  通过反射可以提供类型信息

Silverlight Telerik 学习之主题的设置

Telerik控件版本:RadControls for Silverlight Q1 2013 当前的Telerik Silverlight 控件支持以下主题 Office Black - 这是默认主题,无需加载其它任何dll文件. Office Blue - 引用 Telerik.Windows.Themes.Office_Blue.dll. Office Silver - 引用 Telerik.Windows.Themes.Office_Silver.dll. Summer - 引用 Tel

Centos 7 学习之静态IP设置

原文链接:http://blog.csdn.net/johnnycode/article/details/40624403 本学习主要针对 Centos 7.0.1406 版本进行学习整理! 如果你使用 VirtualBox 配置 Centos 那么请参考我的这篇文章 Centos 7 学习之静态IP设置(续) 1.编辑 ifcfg-eth0 文件,vim 最小化安装时没有被安装,需要自行安装不描述. [plain] view plain copy # vim /etc/sysconfig/ne