The Simple Injector
library is designed for ease of use. It therefore contains a subset of the features that other DI framework contain. While we think the feature set is enough in most cases, we don’t want to lock you down. We therefore designed the library with ease of migration in mind. When you’re using our library and came to the conclusion that Simple Injector
isn't the best fit for your application, this migration guide can help you with switching to the dependency injection library of your choice. But before you do, please take a look at the advanced scenarios
section in the documentation and make sure you tried the extension methods in the SimpleInjector.Extensions
namespace. There might be more you can do with the Simple Injector
than you know.
For each DI library described, this guide will show you how to use that library compared to ours. We will note important differences that you should take into consideration. Every framework does have its quirks and design decisions that differentiate from how the Simple Injector
is designed. If you’re not sure which framework to pick, this guide might help you with this as well. The list of migration code samples and core differences will help you pick the framework you think fits best with your wishes.
Please note that the performance of the Simple Injector is in most cases much higher than that of any of the other libraries listed below. While the performance differences are not a problem for most types of applications, please make sure this does hold for you. Also note that some of the advanced features (such as applying decorators) might be hard to migrate to other container frameworks.
You can jump directly to the migration page for the framework you wish migrate to. You can also use these pages to find out how the API of those frameworks look like, to help you pick the right framework for the features you need. We listed the most popular DI frameworks for .NET below, which have the biggest user community. When the DI framework of your choice is not available, it means we didn't have the time write a migration guide for it yet. Of course you're always welcome to help writing that migration page :-)