Exemplo n.º 1
0
        private string GenerateIntrospectionXml(TypeDescription description)
        {
            var  writer        = new IntrospectionWriter();
            bool hasProperties = false;

            foreach (var interf in description.Interfaces)
            {
                writer.WriteInterfaceStart(interf.Name);
                foreach (var method in interf.Methods)
                {
                    writer.WriteMethodStart(method.Name);
                    foreach (var arg in method.InArguments)
                    {
                        writer.WriteInArg(arg.Name, arg.Signature);
                    }
                    foreach (var arg in method.OutArguments)
                    {
                        writer.WriteOutArg(arg.Name, arg.Signature);
                    }
                    writer.WriteMethodEnd();
                }

                foreach (var signal in interf.Signals)
                {
                    writer.WriteSignalStart(signal.Name);
                    foreach (var arg in signal.SignalArguments)
                    {
                        writer.WriteArg(arg.Name, arg.Signature);
                    }
                    writer.WriteSignalEnd();
                }

                foreach (var prop in interf.Properties)
                {
                    hasProperties = true;
                    writer.WriteProperty(prop.Name, prop.Signature, prop.Access);
                }
                writer.WriteInterfaceEnd();
            }
            if (hasProperties)
            {
                writer.WritePropertiesInterface();
            }
            writer.WriteIntrospectableInterface();
            writer.WritePeerInterface();

            return(writer.ToString());
        }