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