Size: a a a

2020 August 10

AP

Aleks Po in unity3d.ru
Виктор
Ну, вложенность кода можно эмулировать вложенными json объектами - собираешь алгоритмом генерации твоего класса json объект, после чего рекурсивно преобразуешь его в исходник
подскажи что гуглить
источник

AP

Aleks Po in unity3d.ru
я подумал что можно это сделать с пом roslyn, но никак не могу найти тутор по нему
источник

В

Виктор in unity3d.ru
Я кодогеню классы сериализаторов пакета для сокет сервера:
Запилено небольшое обобщения для понятий типа поле/метод/класс и прочие примитивы
По ходу дела собирается лист зависимостей, чтобы нормальный using собрать
Далее, рекурсивно разворачиваются сериализаторы для каждой структуры, помеченные аттрибутом для кодогена, исходик кидается рядом с исходным пакетом
источник

В

Виктор in unity3d.ru
Возможно, тебе нужен не совсем обычный кодоген
источник

В

Виктор in unity3d.ru
Нужны подробности задачи
источник

AP

Aleks Po in unity3d.ru
есть классы которые реализуют определенный интерфейс
источник

AP

Aleks Po in unity3d.ru
собрать все типы этих классов
источник

AP

Aleks Po in unity3d.ru
и создать новый файл с классом внутри которого для каждого найденного типа создается массив с этим типом
источник

В

Виктор in unity3d.ru
Aleks Po
есть классы которые реализуют определенный интерфейс
Доступ к исходникам есть, или классы в виде dll?
источник

AP

Aleks Po in unity3d.ru
Виктор
Доступ к исходникам есть, или классы в виде dll?
да, это проект юнити
источник

AP

Aleks Po in unity3d.ru
мне сам процесс кодогена интересен
источник

AP

Aleks Po in unity3d.ru
извиняюсь, а если в тупую писать в файл
источник

AP

Aleks Po in unity3d.ru
?
источник

AP

Aleks Po in unity3d.ru
мета файлы нужны будут какие-то?
источник

В

Виктор in unity3d.ru
Ну тогда совсем тривиальная задача
В твоём случае для 'массив с этим типом' делаешь шаблон с {0} на месте названия типа и подменяешь в каждом случае
источник

В

Виктор in unity3d.ru
(какой-нибудь String.Format подойдёт)
источник

В

Виктор in unity3d.ru
Зачем усложнять?
источник

AP

Aleks Po in unity3d.ru
public interface IInterface { }

public class A : IInterface { }
public class B : IInterface { }

public class Gen
{
   private A[] _a;
   private B[] _b;
   и так далее...
}
источник

В

Виктор in unity3d.ru
Aleks Po
извиняюсь, а если в тупую писать в файл
Обычно при кодогене создают отдельный файл, писать в существующий - моветон
Если хочешь удобства побольше, то можешь partial class делать
источник

AS

Andrey Sche in unity3d.ru
Приветствую: кто-то пользуется Notifications для ios+android? Хочу помучать в привате
источник