Note that there are some explanatory texts on larger screens.

plurals
  1. POCastle NHibernate Integration - Creating a generic configurationBuilder
    primarykey
    data
    text
    <p>I am using Nhibernate 3.0.0.1001 and Castle.Facilities.NHibernateIntegration 1.1.0.0</p> <p>I am using Castle to inject an ISessionManager into my session management classes.</p> <p>I am specifying My ConfigurationBuilder in the web.config like this:</p> <pre><code> &lt;castle&gt; &lt;facilities&gt; &lt;facility id="MyNhibernateFacility" type="Castle.Facilities.NHibernateIntegration.NHibernateFacility, Castle.Facilities.NHibernateIntegration" isWeb="false" configurationBuilder="MyDomainModelAssembly.ConfigurationBuilder, MyDomainModelAssembly"&gt; &lt;factory id="nhibernate.factory"&gt; &lt;settings&gt; &lt;item key="show_sql"&gt;true&lt;/item&gt; &lt;item key="connection.provider"&gt;NHibernate.Connection.DriverConnectionProvider&lt;/item&gt; &lt;item key="connection.driver_class"&gt;NHibernate.Driver.SqlClientDriver&lt;/item&gt; &lt;item key="dialect"&gt;NHibernate.Dialect.MsSql2005Dialect&lt;/item&gt; &lt;item key="connection.connection_string"&gt;Data Source=.\SQL2005;Initial Catalog=MyDb;User Id=xxx;Password=xxx;MultipleActiveResultSets=true&lt;/item&gt; &lt;item key="proxyfactory.factory_class"&gt; NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle&lt;/item&gt; &lt;/settings&gt; &lt;/factory&gt; &lt;/facility&gt; </code></pre> <p>My "ConfigurationBuilder" class looks like this:</p> <pre><code> public class ConfigurationBuilder : IConfigurationBuilder { public Configuration GetConfiguration(IConfiguration facilityConfiguration) { var defaultConfigurationBuilder = new DefaultConfigurationBuilder(); var configuration = defaultConfigurationBuilder.GetConfiguration(facilityConfiguration); return Fluently.Configure(configuration) .Mappings(ConfigureMappings) .BuildConfiguration(); } public void ConfigureMappings(MappingConfiguration mappingConfiguration) { mappingConfiguration.FluentMappings .AddFromAssemblyOf&lt;MyModelClass&gt;() .Conventions.Add( ForeignKey.EndsWith("Id"), PrimaryKey.Name.Is(n =&gt; "Id"), DefaultCascade.None(), new HiLoPrimarykeyConvention()); } public class HiLoPrimarykeyConvention : IIdConvention { public void Apply(IIdentityInstance instance) { instance.GeneratedBy.HiLo("1000"); } } } </code></pre> <p>I would like to make the ConfigurationBuilder more generic so that it does not have a dependency on the models it maps to. </p> <p>So instead of:</p> <pre><code> .AddFromAssemblyOf&lt;MyModelClass&gt;(). </code></pre> <p>I would like to say something like: </p> <pre><code>.AddFromAssemblyOf&lt;T&gt;(). </code></pre> <p>I can do this in the ConfigurationBuilder class </p> <p><strong>but is there then any way of specifying what "T" is in the web.config facility?</strong></p> <p>For example I know I can't do this:</p> <pre><code> &lt;castle&gt; &lt;facilities&gt; &lt;facility ... configurationBuilder="MyGenericNhibernateSessionManagementAssembly. ConfigurationBuilder&lt;MyModelClass&gt;, MyGenericNhibernateSessionManagementAssembly"&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload