Describes the metadata for a set of entities. The PocoMetadataBuilder calls methods on this class to determine how to generate metadata for the entities. Extend this class to adapt to your data model.
Exemplo n.º 1
0
 /// <summary>
 /// Generate metadata from the given Assembly.
 /// </summary>
 /// <param name="assembly">Assembly containing entity types</param>
 /// <param name="descriptor">Descriptor used to evaluate types and resolve metadata</param>
 /// <returns></returns>
 public static Metadata Generate(Assembly assembly, EntityDescriptor descriptor)
 {
     var builder = new PocoMetadataBuilder(descriptor);
     var types = GetTypesFromAssembly(assembly);
     var metadata = builder.BuildMetadata(types);
     return metadata;
 }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            var procname = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
            Console.WriteLine(procname + ' ' + string.Join(" ", args));
            var parser = new CommandLine.Parser(ps => { ps.MutuallyExclusive = true; ps.HelpWriter = Console.Out; });

            if (!parser.ParseArguments(args, Options))
            {
                return;
            }
            var assemblyName = GetAssemblyName(Options.InputFile);

            if (!File.Exists(assemblyName))
            {
                Console.WriteLine("The specified file {0} cannot be found", assemblyName);
                return;
            }
            string outfile = GetFilePath();

            // TODO: how to get this from the command line?
            EntityDescriptor descriptor;
            if (assemblyName.Contains("Northwind"))
                descriptor = new NorthwindEntityDescriptor();
            else
                descriptor = new EntityDescriptor();

            var metadata = Generator.Generate(assemblyName, descriptor);
            var json = ToJson(metadata);

            if (outfile != null)
            {
                Console.WriteLine("Writing to " + outfile);
                File.WriteAllText(outfile, json);
            }
            else
            {
                Console.WriteLine(json);
            }
            Console.WriteLine("Done");
        }
 /// <summary>
 /// Create an instance using the given EntityDescriptor to resolve metadata
 /// </summary>
 /// <param name="describer"></param>
 public PocoMetadataBuilder(EntityDescriptor describer)
 {
     this._describer = describer;
 }
Exemplo n.º 4
0
 /// <summary>
 /// Load the assembly from the given AssemblyName, then call <see cref="Generate(Assembly, EntityDescriptor)"/>
 /// </summary>
 /// <param name="assemblyName"></param>
 /// <param name="descriptor"></param>
 /// <returns></returns>
 public static Metadata Generate(AssemblyName assemblyName, EntityDescriptor descriptor)
 {
     //Assembly assembly = Assembly.ReflectionOnlyLoad(assemblyName.FullName);
     Assembly assembly = Assembly.Load(assemblyName.FullName);
     return Generate(assembly, descriptor);
 }
Exemplo n.º 5
0
 /// <summary>
 /// Load the assembly from the given file, then call <see cref="Generate(Assembly, EntityDescriptor)"/>
 /// </summary>
 /// <param name="assemblyFileName"></param>
 /// <param name="descriptor"></param>
 /// <returns></returns>
 public static Metadata Generate(string assemblyFileName, EntityDescriptor descriptor)
 {
     //Assembly assembly = Assembly.ReflectionOnlyLoadFrom(assemblyFileName);
     Assembly assembly = Assembly.LoadFrom(assemblyFileName);
     return Generate(assembly, descriptor);
 }