В настоящее время я работаю над проектом, в котором есть несколько классов, которые должны отображаться друг на друга. Отображение очень простое, но я всегда теряю много времени на создание чего-то вроде этого:
void ConvertA1ToA2(A1 arg1, A2 arg2)
{
arg1.SomeField = arg2.SomeOtherField;
//A lot more fields with basic conversions and naming slightly deferring
}
void ConvertA2ToA1(A2 arg1, A1 arg2)
{
arg1.SomeOtherField = arg2.SomeField;
//A lot more fields with basic conversions and naming slightly deferring
}
Чтобы избежать этого, я пытался создать инструмент, который получит путь к DLL, будет искать классы с пользовательским атрибутом, получая параметр с именем преобразования класса. После этого я буду искать атрибуты для другого настраиваемого атрибута, ища соответствующее поле. После всего этого я бы сгенерировал .cs, который я бы включил в проект вручную, и поэтому пропустил много времени, выполняя тезисы.
В настоящее время я успешно загружаю DLL и правильно выполняю поиск пользовательских атрибутов, поэтому мой единственный последний шаг - создание файла .cs. Есть ли какая-нибудь библиотека, которая помогла бы мне с этим? Или я должен использовать API StreamWriter по умолчанию?
EDIT:
Вот пример того, что я бы написал в классе:
[ConvertibleClass(TargetClass = "TestDomain.A2")]
public class A1
{
[ConvertibleProperty("Uid")]
public int Id { get; set; }
}
namespace TestDomain
{
public class A2
{
public int Uid { get; set; }
}
}