Например, я написал класс SomeEntity:
class SomeEntity
{
public object Content { get; set; }
}
Я хочу, чтобы мой проект автоматически генерировал код для другого класса на основе SomeEntity:
class SomeProvider
{
public SomeEntity GetEntity(object content) => new SomeEntity { Content = content };
}
Это просто демо, логика реальных требований намного сложнее.
По моему мнению, это похоже на то, как Protobuf генерирует соответствующий класс в соответствии с файлом .proto, и сгенерированный класс может быть правильно распознан IDE (класс создается в каталоге obj, как это реализовать?).
Я пробовал Fody, но кажется, что внедренный объект не может быть распознан IDE.
Каков наилучший технический принцип и решение?
С техникой Фоди, когда некоторые коды вводятся, IDE и компилятор не будут знать об этом. Я рекомендую Rosyln, который предназначен для того, чтобы делать то же самое и многое другое. Взгляните на эту ссылку https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/source-generators-overview
Для сравнения различных доступных генераций исходного кода для .net есть хорошая статья: https://dominikjeske.github.io/source-generators/
Взгляните на T4.