Example #1
0
        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);
        }
Example #2
0
        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));
        }