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)); } }