<p>I'm learning DI, and made my first project recently.</p>

<p>In this project I've implement the repository pattern. I have the interfaces and the concrete implementations. I wonder if is possible to build the implementation of my interfaces as "plugins", dlls that my program will load dynamically.</p>

<p>So the program could be improved over time without having to rebuild it, you just place the dll on the "plugins" folder, change settings and voilá! </p>

<p>Is this possible? Can Ninject help with this?</p>

you can easily do it with normal C# reflection, you don't need any extra technology.
There are quite a few examples on the web, e.g.
http://www.codeproject.com/KB/cs/c__plugin_architecture.aspx
In general in your main application, you need to load the assembly implementing the plugin, e.g.:
```
```
ass = Assembly.Load(name);
```
```
and then you need to create an instance of your plugin. If you know the name of the class it would look like this:
```
```
ObjType = ass.GetType(typename);
IPlugin plugin = (IPlugin)Activator.CreateInstance(ObjType);
```
```
and then you just use it.