私はしたくない..しかし、それは私だけです。
また、私は自分の工場を展開しません..私は Ninjects Factory 拡張機能を使用しています。ここで見つけることができます:
https://github.com/ninject/ninject.extensions.factory
基本的に、通常のようにバインディングを作成しますが、次にファクトリのインターフェイスを作成します (ここでは WinForms を想定しています)。
public interface IMainFormFactory {
    frmLogin CreateLoginForm();
    frmSettings CreateSettingsForm();
    IRepository<MainFormModel> CreateMainFormRepository();
}
..そして拡張子でバインドしますToFactory:
using Ninject.Factories; // can't quite remember namespace at the moment
public class FactoryModule : NinjectModule {
    protected override void Load() {
        Bind<IMainFormFactory>().ToFactory();
    }
}
ファクトリ拡張では、このインターフェイスの具体的な実装を定義する必要はありません..提供したバインディングに基づいて、これらのオブジェクトをどうするかを既に知っています..バックグラウンドで、このインターフェイスを実装するマネージャーを作成します)。
したがって、次のようなことができます。
private readonly IMainFormFactory _factory;
public frmMainForm(IMainFormFactory factory) {
    _factory = factory;
}
public void btnSettings_Click(object sender, EventArgs e) {
    // show the settings form..
    var settingsForm = _factory.CreateSettingsForm();
    settingsForm.ShowDialog();
}
..次に、frmSettings にも注入します。
public frmSettings(ISettingsFormFactory factory) {
    // as above except for ISettingsFactory
}
..これが私が物事を行うことを選択する方法です。他の人がより良いアイデアを持っているかもしれません (私も彼らの意見を聞きたいです!)。