Ich schreibe gerade ein Open Source-SDK für ein Programm, das ich verwende, und ich verwende intern einen IoC-Container (NInject), um alle meine internen Abhängigkeiten zu verdrahten.Verwenden von IoC mit internen Objekten
Ich habe einige Objekte, die als intern markiert sind, so dass ich nicht die öffentliche API drängen, da sie nur intern verwendet werden und vom Benutzer nicht gesehen werden sollten, wie Fabriken und andere Objekte. Das Problem, das ich habe, ist, dass NInject interne Objekte nicht erstellen kann, was bedeutet, dass ich alle meine internen Objekte öffentlich markieren muss, die die öffentliche API überladen.
Meine Frage ist: Gibt es eine Möglichkeit, um dieses Problem zu umgehen oder mache ich alles falsch?
PS. Ich habe darüber nachgedacht, das Attribut InternalsVisiableTo zu verwenden, aber ich habe das Gefühl, dass das ein bisschen riecht.
Wenn es ein Open Source SDK ist, frage ich mich, warum Sie versuchen, die Verwendung Ihres Codes zu verhindern? Ich verstehe, wenn Sie versuchen, sicherzustellen, dass uns SDK "Benutzer" Objekte nicht instanziiert, aber für mich, das ist noch mehr ein Geruch (SRP, LSP). Kannst du mehr von deinen Einschränkungen erklären? –