Ich habe Wrapper-Klassen für einige Klassen von Drittanbietern ohne Schnittstellen, und ich muss es in einem ziemlich SOLID-Block von C# -Code verweisen.Wie konvertiert man ein Objekt in Ninject & C# in ein Wrapper-Objekt?
Derzeit habe ich eine statische Funktion, um die Instanz in eine Wrapper-Instanz zu konvertieren.
Beispielcode.
class A
{
public string Name;
}
interface IAWrapper
{
string Name { get; set; }
}
class AWrapper : IAWrapper
{
private A Instance;
public AWrapper(A instance)
{
Instance = instance;
}
public string Name
{
get
{
return Instance.Name;
}
set
{
Instance.Name = value;
}
}
}
Ich möchte eine Funktion wie
var a = new A() {Name = "bob"};
var wrapped = kernel.wrap<IAWrapper>(a);
Wo wrapped
wird eine Instanz von AWrapper
, und es wurde a
für Instance
Does Ninject besitzen eine Möglichkeit, dies zu tun, übergeben werden? Um eine Wrapper-Klassenschnittstelle anzufordern, die zu umhüllende Instanz, und die Wrapperklasse zurückbekommen?
(meine Entschuldigung, ich bin sicher, es gibt viel mehr klare Möglichkeiten, dies zu fragen, aber wenn ich weiß, wie es zu fragen, besser, ich könnte die Antwort so gut kennen. :))
Sie brauchen Ninject dafür nicht. Sie können einfach 'new AWrapper (new A {Name =" bob "})' aufrufen. – Steven