rdelrosario / xamarin-plugins

Cross platform Xamarin & Windows plugins for PCLs
MIT License
179 stars 161 forks source link

Initialization is not DI-friendly #43

Closed kentcb closed 8 years ago

kentcb commented 8 years ago

Initialization via a static Initialize method which creates the type for you is not friendly for DI. It makes everything ass-backwards. I have to let CrossPushNotification create my listener, extract it via CrossPushNotification.PushNotificationListener, then inject that into my container.

It would be useful to have overloads that take an already instantiated instance of T:

var composition = new CompositionRoot();
var listener = composition.ResolvePushNotificationListener();

CrossPushNotification.Initialize(listener);