Создать файл чванства из неизвестных объектов (.net) - PullRequest
0 голосов
/ 28 мая 2019

Я хочу разработать новый API.Он должен соединять Dynamics CRM и фронт-разработчиков.

На сегодняшний день разработан «обходной путь»:

  1. Заполните файл Excel для описания CRM и пользовательских объектов (с fetchXml,...)
  2. Записать и объединить строки для записи файла YAML.
  3. Скопировать этот файл в редактор swagger и выполнить тесты с почтальоном

На первом этапеЯ хочу создать схему без конкатенации строк ... (временно ожидая замены файла Excel на OData и ASP.NET Core, чтобы получить что-то более мощное)

На данный момент я использую отражение для построенияобъекты из файла Excel:

using System.Reflection;
using System.Reflection.Emit;
using Swashbuckle.Swagger;
...

var assemblyName = new AssemblyName(Guid.NewGuid().ToString();
var assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
var moduleBuilder = assemblyBuilder.DefineDynamicModule("Module");
var typeBuilder = moduleBuilder.DefineType(entity.CrmEntityName);
foreach (var attribute in entity.Attributes)
{
    Type t = typeof(int);
    switch (attribute.DataType.ToLower())
    {
        case "string":
            t = typeof(string);
            break;
        case "integer":
            t = typeof(int);
            break;
        case "date":
            t = typeof(DateTime);
            break;
    }
    typeBuilder.DefineField(attribute.CrmName, t.GetType(), FieldAttributes.Public);
    var type = typeBuilder.CreateType();

    // create the Swagger models here
}

Как я могу сгенерировать свой чванство из этих типов и свойств?Я просматривал объект с именем Schema, который содержит имя и другое Schema, я не знаю, является ли это неправильным способом ...

...