2009-07-10 50 views
9

He esta configuración en el hibernate.cfg.xml:¿Es necesario Proxy Factory en NHibernate?

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> 
    <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=SSPI;</property> 
    <property name="show_sql">true</property> 
    </session-factory> 
</hibernate-configuration> 

Acabo de crear una biblioteca de clases y he creado una prueba de integración usando MbUnit. Falla. Una parte del informe (la que yo creo es suficiente) va aquí:

** NO TESTS WERE RUN (No tests found) ** 
TestCase 'M:IntegrationTests.RepositoryTests.ListAllPostsReturnsAListOfPost' 
failed: The ProxyFactoryFactory was not configured. 
Initialize 'proxyfactory.factory_class' property of the session-factory configuration section with one of the available NHibernate.ByteCode providers. 

He leído muchos tutoriales y no he visto esta configuración de fábrica proxy. ¿Lo está especificando realmente necesario? Si es así, ¿cómo puedo hacer eso? ¿Debo hacer referencia a alguna otra biblioteca?

Respuesta

14

Si está utilizando la última versión de NHibernate (2.1), se dará cuenta de que mainline for NH doesn't have a dependency on castle para la generación de proxy más, por lo que todos los tutoriales que has estado viendo son probablemente fuera de fecha.

Básicamente, ahora tiene algunas opciones de cómo desea crear sus proxies dinámicos, por lo que deberá configurar explícitamente qué generador de proxy desea utilizar. Los ejemplos se pueden encontrar en este how-to post on forge. Se hace referencia a una lista completa de las opciones here.

P.S. si desea mantener las cosas simples, simplemente use Castle ya que todas las versiones anteriores de NHibernate lo usan de manera predeterminada.

+0

De acuerdo con [esta respuesta] (http://stackoverflow.com/a/8932549/326110), ni siquiera necesita configurar los proxies. –