Return to Snippet

Revision: 29286
at July 25, 2010 17:03 by darkbaron1912


Initial Code
private static object Convert2DataContract2(object objDataTypeIn, string strTableName)
        {

            //@ Đổi từ M_AEM -> M_AemManager
            string strDataContractManager = strTableName.Substring(0, 3) + strTableName.Substring(3).ToLower() + "Manager.";
            //@ Đổi từ M_AEM -> M_AemDataContract
            string strDataContract = strTableName.Substring(0, 3) + strTableName.Substring(3).ToLower() + "DataContract";
            //@ Đổi từ M_AEM -> M_AemDataContract2
            string strDataContract2 = strTableName.Substring(0, 3) + strTableName.Substring(3).ToLower() + "DataContract2";
            //@ load Assembly chứa DataContract    
            Assembly objAssemblyDataConntract = System.Reflection.Assembly.Load(ASEEMBLY_DATACONTRACT);
            //@ load Assembly chứa DataContract2    
            Assembly objAssemblyDataConntract2 = System.Reflection.Assembly.Load(ASEEMBLY_DATACONTRACT2);
            //@ lấy kiểu tương ứng của M_AemDataContract
            Type objTypeIn = objAssemblyDataConntract.GetType(DATACONTRACT_NAMESPACE + strDataContractManager + strDataContract);
            //@ lấy kiểu tương ứng của M_AemDataContract
            Type objTypeOut = objAssemblyDataConntract2.GetType(DATACONTRACT_NAMESPACE2 + strDataContract2);

            object objReturnTypeOut = Activator.CreateInstance(objTypeOut);
            //@ lấy tất cả thuộc tính của Data Contract
            PropertyInfo[] objListPropertyInfo = objTypeIn.GetProperties();
            foreach (PropertyInfo objPropertyInfoIn in objListPropertyInfo)
            {
                //@@ Lấy giá trị tương ứng của  thuộc tính  Data Contract
                object objProperty = objPropertyInfoIn.GetValue(objDataTypeIn, null);
                //@@ Lấy thuộc tính tương ứng của  Data Contract2
                PropertyInfo objPropertyInfoOut = objTypeOut.GetProperty(objPropertyInfoIn.Name, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
                //@@ Gán giá trị sang  kết quả trả về
                objPropertyInfoOut.SetValue(objReturnTypeOut, objProperty, null);
            }
            //@ set  thêm thuộc tính TableName cho kết quả trả về
            PropertyInfo objPropertyTableName = objTypeOut.GetProperty("TableName", BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
            objPropertyTableName.SetValue(objReturnTypeOut, strTableName, null);
            return objReturnTypeOut;

        }

Initial URL


Initial Description
openpacs

Initial Title
Reflection convert all propperties

Initial Tags


Initial Language
C#