Я просто хотел реализовать ILoggerFactory, чтобы сбрасывать только SQL-запросы в файл для целей отладки.NHibernate - Регистрация фабричной реализации пользовательского регистратора
Я использовал следующую конфигурацию, чтобы NHibernate знал о моей реализации.
var configuration = new Configuration();
configuration.SetProperty("nhibernate-logger", "SQLLog.LoggerFactory, SQLLog");
Прежде чем внедрять все необходимые методы, я хотел убедиться, что NHibernate использует мою собственную реализацию. Поэтому я поставил точку останова в конструкторе по умолчанию LoggerFactory, чтобы убедиться, что NHibernate вызывает мою пользовательскую реализацию. К сожалению, точка останова никогда не попадает.
Может ли кто-нибудь помочь мне в настройке настраиваемого регистратора для NHibernate и как убедиться, что NHibernate использует мой зарегистрированный LoggerFactory?
Обратите внимание, что я хочу выполнить настройку на уровне кода, но не используя файлы * .config.
Обратите внимание, что у меня есть реализация NHibernate в отдельной сборке и реализации SQL-регистратора в отдельной сборке в том же решении. Но оба двоичных файла не содержат одну и ту же папку bin, где выполняется мое основное приложение.
using System;
using NHibernate;
namespace SQLLog
{
public class LoggerFactory:ILoggerFactory
{
public LoggerFactory()
{
var mn = string.Empty;
}
public IInternalLogger LoggerFor(string keyName)
{
throw new NotImplementedException();
}
public IInternalLogger LoggerFor(Type type)
{
throw new NotImplementedException();
}
}
}
- DLL SQLLog, развернутый по тому же пути вызывающей программы? –
Здравствуйте, Felice, Да, SQLLog находится на том же пути, что и вызывающая программа. – RSF
Является ли класс класса общедоступным? Просто попробуйте угадать: разместите свой код, он может помочь –