2013-05-01 22 views
8

Ich habe gerade begonnen, den neuen MS Enterprise Library 6.0 Logger-Block auszuprobieren. Wenn ich versuche, einen LogWriter zu erstellen, erhalte ich die Fehlermeldung:Das Symbol 'EnterpriseLibraryContainer' konnte nicht aufgelöst werden.

Cannot resolve symbol 'EnterpriseLibraryContainer'

ich alle haben die Referenzen und usings an Ort und Stelle, kann aber nach diesem Fehler nicht erhalten.

Gibt es eine Lösung für dieses Problem?

Antwort

8

Halleluja! Ich habe gerade einen Beitrag gefunden (auf einem Link, der seitdem verschwunden ist). Hier ist die Geschichte:

Der Bootstrapping-Code für alle Blöcke hat in Version 6 der Enterprise Library geändert. Die Blöcke verwenden nicht mehr Unity, um die Initialisierung und Konfiguration zu verwalten, und jeder Block enthält jetzt seinen eigenen Bootstrapping-Code. Alle Aufrufe der EnterpriseLibraryContainer.Current.GetInstance-Methode zum Auflösen eines Typs aus einem der Enterprise-Bibliotheksblöcke sollten durch den blockspezifischen Bootstrap-Code ersetzt werden. Um zum Beispiel einer LogWriter Instanz auf Konfiguration in der Datei app.config basierend zu erstellen, können Sie nun den folgenden Code verwenden:

LogWriterFactory logWriterFactory = new LogWriterFactory(); 
var logWriter = logWriterFactory.Create(); 

Ich glaube, dass dieser Klappentext von der „Microsoft Enterprise Library ist 6 und Unity 3 Migration Führen".

Ich habe den Code wie gezeigt eingegeben und nicht den Compiler beschweren. Jetzt kann ich weiter sehen, wie das Logging funktioniert.

+0

Great! Ich habe mich nicht mit LogWriterFactory beschäftigt, für die Protokollierung, um mit EL 6.0 zu arbeiten, habe ich etwas gemacht wie: var loggingConfig = ConfigurationManager.GetSection ("loggingConfiguration") als LoggingSettings; var logWriter = loggingConfig.BuildLogWriter(); – AksharRoop

1

Ja, sogar ich hatte Probleme beim Erstellen eines Objekts für ValidationFactory mit Ent Lib 6.0. Nur zur Info eine Instanz von ValidationFactory siehe folgenden Code zu erstellen:

private Validator<Customer> customerValidator; 
customerValidator = ValidationFactory.CreateValidator<Customer>(); 

Diese nicht jetzt

erforderlich ist
EnterpriseLibraryContainer.Current.GetInstance<ValidatorFactory>() 
Verwandte Themen