Press "Enter" to skip to content

No i znowu ten Type Initialization Exception. Tym razem nhibernate

No i znowu ten Type Initialization Exception.

Tym razem w pracy (pozdro dla szefa- pozwolił mi na opisanie przypadku) zdarzyła mi się taka sytuacja.

Zrobiłam drobną zmianę w kodzie, by umożliwić sterowanie testemi (wstrzeliwany config z wiersza poleceń- . Wszystko pięknie ładnie na zielono, odpalam apkę….

Exception message: Inicjator typów zgłosił wyjątek dla typu 'NHibernate.Cfg.Environment'.Exception source: NHibernate
Stack trace: w NHibernate.Cfg.Environment.get_Properties()
w NHibernate.Cfg.Configuration.Reset()
w NHibernate.Cfg.Configuration..ctor(SettingsFactory settingsFactory)
w NHibernate.Cfg.Configuration..ctor()
w (dobra, ukrócę wam te męki)

generalnie potem gdzieś w inner znalazłam coś takiego:

An exception occurred parsing configuration :Element element 'session-factory' w przestrzeni nazw 
'urn:nhibernate-configuration-2.2' nie może zawierać tekstu. Lista oczekiwanych możliwych elementów: element 'property, mapping, class-cache, collection-cache, event, listener' w 
przestrzeni nazw 'urn:nhibernate-configuration-2.2'. --> Element element 'session-factory' w przestrzeni nazw 'urn:nhibernate-configuration-2.2' nie może zawierać tekstu. Lista oczekiwanych 
możliwych elementów: element 'property, mapping, class-cache, collection-cache, event, listener' w
 przestrzeni nazw 'urn:nhibernate-configuration-2.2'.

O co chodzi? Była sobie apka korzystająca z 2 typów baz (oracle i ms sql) i chciałam móc wiedzieć, z której bazy danych ostatnio skorzystano – tzn jaka sesja została stworzona. Dodałam sobie coś takiego

public static DbTypes LastUsedDbType { get; set; }

aby tą informację globalnie przechować (DBTypes to krótki enum co trzyma rodzaj bazy). Tak, wiem że brzydko, bo statyczna wartość i w ogóle, ale przecież to do celów testowych było:)
Okazało się, że nie można do fabryki sesji dodawać czego się chce- co to to nie.

Skorzystałam z faktu, że jak coś jest statyczne to może być gdziekolwiek- więc po prostu przeniosłam ową propertę na zewnątrz i znowu mogłam się cieszyć uruchamiającą się aplikacją.

I … to chyba na tyle.

One Comment

  1. Znowu TypeInitializationException

    Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl

Comments are closed.