public static string GenerateCode(DefaultObject defaultObj, PropertyDef property, MethodDef.Param arrayIndexElement, bool isRefParam, StringWriter stream, string indent, string typename, string var, string caller, string setValue = null) { if (property.IsPar || property.IsCustomized) { return(ParInfoCsExporter.GenerateCode(property, isRefParam, stream, indent, typename, var, caller)); } string agentName = GetGenerateAgentName(property, var, caller); string prop = GetProperty(defaultObj, property, arrayIndexElement, stream, indent, var, caller); if (setValue == null) { if (!string.IsNullOrEmpty(var)) { if (string.IsNullOrEmpty(typename)) { stream.WriteLine("{0}{1} = {2};", indent, var, prop); } else { string nativeType = DataCsExporter.GetPropertyNativeType(property, arrayIndexElement); stream.WriteLine("{0}{1} {2} = {3};", indent, nativeType, var, prop); } } } else { string propBasicName = property.BasicName.Replace("[]", ""); stream.WriteLine("{0}AgentMetaVisitor.SetProperty({1}, \"{2}\", {3});", indent, agentName, propBasicName, setValue); } return(prop); }
private static string getProperty(PropertyDef property, MethodDef.Param arrayIndexElement, string agentName, StringWriter stream, string indent) { if (property.IsPar || property.IsCustomized) { return(ParInfoCsExporter.GetProperty(agentName, property, arrayIndexElement, stream, indent)); } string propName = DataCsExporter.GetPropertyBasicName(property, arrayIndexElement); string nativeType = DataCsExporter.GetPropertyNativeType(property, arrayIndexElement); if (property.IsPublic) { string className = property.ClassName.Replace("::", "."); if (property.IsStatic) { return(string.Format("{0}.{1}", className, propName)); } else { return(string.Format("(({0}){1}).{2}", className, agentName, propName)); } } return(string.Format("({0})AgentMetaVisitor.GetProperty({1}, \"{2}\")", nativeType, agentName, propName)); }