LogUtil Konstruktor sieht wie folgt aus:configure parametrisierte Konstruktor für InjectionConstructor in UnityContainer
public LogUtil(object classType)
{
....
}
Mein folgenden Code korrekt funktioniert ..
var container = new UnityContainer();
container.RegisterType<ILogUtility, LogUtil>(new InjectionConstructor(this.GetType()));
Logger logger = container.Resolve<Logger>();
ich Problem habe die Konstruktor-Einstellungen in der Konfigurationsdatei konfigurieren. ich konfiguriert, um den Behälter Registrierung wie folgt:
<container>
<register type="ILogUtility, Framework"
mapTo="LogUtil, Log4Net">
<constructor>
<param name="classType" type="object">
</param>
</constructor>
</register>
</container>
Es Problem in Konstruktor Einstellung in der obigen Konfiguration zu sein scheint. Ich kann die "type" Informationen nicht korrekt übergeben. Es wird als "System.Object" im Gegensatz zum eigentlichen Klassentyp übergeben. Wie behebe ich die obige Konstruktorkonfiguration?
Es ist nur eine Vermutung, würde ich annehmen, Sie müssen den Namen des Typs anstelle des Objekts übergeben. Also muss diese Zeile '' in etwas wie ' geändert werden. ' – oleksii