public static Property Create(string typeName, string variableName, string value, bool bStatic, bool bConst) { if (!bConst) { string instanceName = null; bool flag = Utils.IsParVar(variableName); string text; if (flag) { text = string.Format("{0}::{1}", typeName, variableName); } else { text = Property.ParseInstanceNameProperty(variableName, ref instanceName); } bool flag2 = false; if (!string.IsNullOrEmpty(text)) { flag2 = Property.ms_properties.ContainsKey(text); } if (!flag2) { Property property = Property.create(flag, bConst, typeName, text, instanceName, value); if (!string.IsNullOrEmpty(text)) { Property.ms_properties.set_Item(text, property); } return(property.clone()); } Property property2 = Property.ms_properties.get_Item(text); Property property3 = property2.clone(); if (!string.IsNullOrEmpty(value) && !Property.IsAgentPtr(typeName, value)) { property3.SetDefaultValue(value); } return(property3); } else { CMemberBase cMemberBase = null; bool flag3 = !string.IsNullOrEmpty(variableName); string instanceName2 = null; string text2 = variableName; if (flag3) { text2 = Property.ParseInstanceNameProperty(variableName, ref instanceName2); cMemberBase = Agent.FindMemberBase(text2); } if (cMemberBase != null) { return(cMemberBase.CreateProperty(value, true)); } bool bParVar = flag3 && Utils.IsParVar(variableName); return(Property.create(bParVar, bConst, typeName, text2, instanceName2, value)); } }
///create instance property, ///create class scope static property public static Property Create(string typeName, string variableName, string value, bool bStatic, bool bConst) { if (!bConst) { string instanceName = null; string pPropertyName = null; bool bParVar = Utils.IsParVar(variableName); if (bParVar) { pPropertyName = string.Format("{0}::{1}", typeName, variableName); } else { pPropertyName = ParseInstanceNameProperty(variableName, ref instanceName); } bool bFound = false; if (!string.IsNullOrEmpty(pPropertyName)) { bFound = ms_properties.ContainsKey(pPropertyName); } if (!bFound) { Property pProperty = Property.create(bParVar, bConst, typeName, pPropertyName, instanceName, value); if (!string.IsNullOrEmpty(pPropertyName)) { Debug.Check(pProperty != null); ms_properties[pPropertyName] = pProperty; } Property pO = pProperty.clone(); return(pO); } Property p = ms_properties[pPropertyName]; Property pO0 = p.clone(); if (!string.IsNullOrEmpty(value)) { bool bAgentPtr = IsAgentPtr(typeName, value); if (!bAgentPtr) { pO0.SetDefaultValue(value); } } return(pO0); } else { //const CMemberBase pMember = null; bool bValidName = !string.IsNullOrEmpty(variableName); string instanceName = null; string pPropertyName = variableName; if (bValidName) { pPropertyName = ParseInstanceNameProperty(variableName, ref instanceName); pMember = Agent.FindMemberBase(pPropertyName); } if (pMember != null) { Property pProperty = pMember.CreateProperty(value, true); return(pProperty); } else { //CMethodBase pMethod = null; //if (bValidName) //{ // pMethod = Agent.FindMethodBase(pPropertyName); //} //if (pMethod != null) //{ // Property pProperty = pMethod.CreateProperty(value, true); // return pProperty; //} bool bParVar = bValidName && Utils.IsParVar(variableName); Property pProperty1 = Property.create(bParVar, bConst, typeName, pPropertyName, instanceName, value); return(pProperty1); } } //return 0; }