Implementacja mechanizmu wtyczek

Implementacja mechanizmu wtyczek
0

Witam
Chciałbym w swoim programie zaimplementować mechanizm wtyczek. Jako, że nie bawiłem się jeszcze w takie rzeczy, potrzebuję wskazówek.

Chciałbym chwytać interfejs, który posiada dwie metody:
Create(), która tworzy instancję pewnego obiektu i zwraca odpowiedni interfejs, który go implementuje;
Edit(ref x), która przyjmuję ten wyżej wymieniony interfejs i odpala jakiś widok, za pomocą którego dokonuje się edycji tego obiektu.
Chciałbym też, aby wymusić (sprawdzić) obsługę odpowiednich języków/tłumaczeń dla widoku

Przeczytałem ten artykuł http://maciej-progtech.blogspot.com/2010/05/jak-zaimplementowac-mechanizm-wtyczek.html, jednak mam klika wątpliwości.
Zastanawia mnie np, czy typ, którego mam tworzyć instancję za pomocą interfejsu musi być publiczny czy nie

Jak to dobrze napisać?

E9
  • Rejestracja:ponad 13 lat
  • Ostatnio:12 miesięcy
  • Postów:395
2

Da się to o wiele lepiej zrobić rejestrując wszystkie implementacje tego interfejsu w jakimś kontenerze (ja używam Autofaca).

Zastanawia mnie np, czy typ, którego mam tworzyć instancję za pomocą interfejsu musi być publiczny czy nie

Nie za bardzo rozumiem to pytanie. Tworzenie instancji za pomocą interfejsu ?

edytowany 4x, ostatnio: error91
0

Ciekawe, poczytam :) Dzięki

Tak, bo chcę jakby trzymać sam interfejs, który jest po części taką fabryką/kreatorem :P

A takie rozwiązanie się nada http://www.benedykt.net/2010/10/10/jak-stworzyc-program-z-pluginami-w-c/ ?

E9
nie wiem, nie używałem.
Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 18 godzin
0

Używam MEF w DjToKey (możesz przejrzeć moją dokumentację). Fajne rozwiązanie - udostępniam interfejs dla pluginów (w zasadzie kilka interfejsów dla różnych typów) w postaci biblioteki, plugin implementuje interfejs i jest rejestrowany automatycznie przez MEF-a. Wszystko się dzieje samo potem, dostaję listę pluginów, dla nich wywołuję ich metody.

edytowany 1x, ostatnio: Ktos
0

Zastanawia mnie np, czy typ, którego mam tworzyć instancję za pomocą interfejsu musi być publiczny czy nie

Nie musi być. W C# modyfikatory dostępu są sprawdzane statycznie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.