Pull to refresh
15
0
Иван @IL_Agent

Программист

Send message
Майкрасофт, а почеиу вы гифки на макоси делали?
Возможно, не до конца вник в вашу задачу, но почему вы зациклились именно на мета? Вот решение без статиков и атрибутов. Добавляем в BaseT абстрактный метод(свойство), который предоставляет нужную для работы с ним информацию, и дёргаем его в контейнере, когда нам эта информация понадобилась.
Статики вообще надо использовать по минимуму.
И не надо усложнять. Вам уже ответили про фабрику, как вариант. Она может быть скрыта в реализации плагина. Например
IPlugin
{
void Init();
}
В методе инит вся тяжелая логика, она может быть в подкапотной фабрике, может не быть — детали реализации. Что касается цены, метакласс тоже не бесплатный, и неизвестно, что в итоге будет дешевле.
Каждому плагину нужно написать свою фабрику. Так как перечень возможных плагинов и их фабрик нельзя захардкодить, нужно предусмотреть какой-то реестр и механизм сопоставления (хотя бы через атрибуты).

Не понял вашу мысль. Все плагины должны реализовывать какой-нибудь контракт IPlugin. А как реализовывать — дело плагина. Вот и всё.
можно будет получать её непосредственно из статических свойств.

Ничего хорошего в этом нет. Метаинформация, нужная только для движка плагинов, смешивается с обычными полями и методами.
Для меня осталось нераскрытым, таки зачем это может пригодиться в C#?
Перегрузка статических методов? Если есть разные реализации какой-либо абстракции, то про статику нужно забыть.
Виртуальный конструктор? Паттерн фабрика.
Кажется, правильно не стали затаскивать.
Может быть, тут дело в том, что в Delphi (в тех версиях, которые делал ещё Хейлсберг) практически полностью отсутствует рефлексия, и альтернативы метаклассам просто нет, чего нельзя сказать о C#.

Скорее всего.
А в целом интересно, спасибо)
не там ответил
До сих пор на полке эта книжка)
dll то попадёт, а будет ли запускаться анализатор при каждой сборке?
Плюсую к ci. Можно ли такую штуку сделать подключаемой через nuget (без VS) и кидать предупреждения /ошибки при сборке?

А, ну про вторую жизнь имхо громко сказано. Это все здорово, конечно, но сомневаюсь что приведёт к росту популярности uwp/wpf/winforms.

А что случилось в этом году? Как вдохнули жизнь?

Почему неинтересно? А если это сделает разработку под их экосистему комфортнее?

Практика показывает, что Котлин вместо мейнстримовой Джавы, которая тоже не урод и активно развивается, очень даже заходит.

Проблема развития старых языков, в т. ч. c# — в необходимости сохранять обратную совместимость. Поэтому новые фичи (e. g. Nullable references) выглядят как костыли, а язык превращается в монстра(полюбуйтесь на с++).

Какими вытекающими? JetBrains сделали Rider — конкурент VS, причём успешный.
По-вашему под clr, кроме шарпа, не может быть юзабельных языков?

Как же жаль, что Котлин так и не запилили под дотнет (
Заголовок при лисп — статья про джаваскрипт (
Если решили публиковать свой код, то можно хотя бы элементарно его оформить. Когда видишь такое, сразу пропадает доверие и желание читать.

Information

Rating
Does not participate
Registered
Activity

Specialization

Mobile Application Developer, Software Architect
Senior
Kotlin
Dagger 2
Android development
RxJava 2
MVVM
Development of mobile applications
Android Studio
Coroutines
Flow
Android SDK