コード例 #1
0
ファイル: MetadataSamples.cs プロジェクト: vernon016/mono
        public static void Export()
        {
            var bf = BindingFlags.Public | BindingFlags.Static;

            foreach (var method in typeof(MetadataSamples).GetMethods(bf))
            {
                MetadataSampleAttribute sampleAttr = null;
                foreach (var obj in method.GetCustomAttributes(false))
                {
                    var cattr = obj as MetadataSampleAttribute;
                    if (cattr != null)
                    {
                        sampleAttr = cattr;
                        break;
                    }
                }

                if (sampleAttr == null)
                {
                    continue;
                }

                var name = sampleAttr.Name ?? method.Name;
                var doc  = (MetadataSet)method.Invoke(null, null);
                TestContext.SaveMetadata(name, doc);
            }
        }
コード例 #2
0
ファイル: MetadataSamples.cs プロジェクト: zzwwqqq/mono
        public static void Export(string outputDir)
        {
            if (!Directory.Exists(outputDir))
            {
                Directory.CreateDirectory(outputDir);
            }

            var bf = BindingFlags.Public | BindingFlags.Static;

            foreach (var method in typeof(MetadataSamples).GetMethods(bf))
            {
                MetadataSampleAttribute sampleAttr = null;
                foreach (var obj in method.GetCustomAttributes(false))
                {
                    var cattr = obj as MetadataSampleAttribute;
                    if (cattr != null)
                    {
                        sampleAttr = cattr;
                        break;
                    }
                }

                if (sampleAttr == null)
                {
                    continue;
                }

                var name     = sampleAttr.Name ?? method.Name;
                var metadata = (MetadataSet)method.Invoke(null, null);

                var xmlFilename = Path.Combine(outputDir, name + ".xml");
                TestContext.SaveMetadata(xmlFilename, metadata);

                if (!sampleAttr.CreateConfig)
                {
                    continue;
                }

                var configFilename = Path.Combine(outputDir, name + ".config");
                TestContext.GenerateConfig(configFilename, metadata);
            }
        }
コード例 #3
0
ファイル: MetadataSamples.cs プロジェクト: zzwwqqq/mono
        public static MetadataSet GetMetadataByName(string name)
        {
            if (name.EndsWith(".xml"))
            {
                name = name.Substring(name.Length - 4);
            }

            var bf = BindingFlags.Public | BindingFlags.Static;

            foreach (var method in typeof(MetadataSamples).GetMethods(bf))
            {
                MetadataSampleAttribute sampleAttr = null;
                foreach (var obj in method.GetCustomAttributes(false))
                {
                    var cattr = obj as MetadataSampleAttribute;
                    if (cattr != null)
                    {
                        sampleAttr = cattr;
                        break;
                    }
                }

                if (sampleAttr == null)
                {
                    continue;
                }

                if (!name.Equals(sampleAttr.Name ?? method.Name))
                {
                    continue;
                }

                return((MetadataSet)method.Invoke(null, null));
            }

            throw new InvalidOperationException(string.Format(
                                                    "No such metadata sample: '{0}'", name));
        }