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ć?

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 ?

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/ ?

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.

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1