Are the following assemblies in your bin directory?

NHibernate.ByteCode.Castle.dll
Castle.DynamicProxy2.dll
Castle.Core.dll

Ben

On Sat, Jul 25, 2009 at 12:00 PM, Brendan Erwin<[email protected]> wrote:
>
> I'm at a loss here. I'm trying to upgrade my project to the latest
> fluent + NH 2.1.
>
> When I do my configuration like this:
>
> var factory = Fluently.Configure(cfg)
>                 .Database(databaseConfigurer)
>                 .Mappings(m
> =>m.FluentMappings.AddFromAssemblyOf<PatientMap>()
>                              .ConventionDiscovery
> .AddFromAssemblyOf<PatientMap>())
>                 .ExposeConfiguration(c =>
>                                          {
>                                              ve =
> ConfigureValidator(c);
>
> c.SetProperty("adonet.batch_size", "5");
>
> c.SetProperty("generate_statistics", "true");
>                                          })
>                 .BuildSessionFactory();
>
> fluent-nhibernate defaults to the Castle ProxyFactoryFactory but I get
> a:
>
> System.IO.FileNotFoundException: Could not load file or assembly
> 'NHibernate.ByteCode.Castle' or one of its dependencies. The system
> cannot find the file specified.
> at System.Reflection.Assembly._nLoad(AssemblyName fileName, String
> codeBase, Evidence assemblySecurity, Assembly locationHint, ref
> StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean
> forIntrospection)
> at System.Reflection.Assembly.nLoad(AssemblyName fileName, String
> codeBase, Evidence assemblySecurity, Assembly locationHint, ref
> StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean
> forIntrospection)
> at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,
> Evidence assemblySecurity, ref StackCrawlMark stackMark, Boolean
> forIntrospection)
> at System.Reflection.Assembly.InternalLoad(String assemblyString,
> Evidence assemblySecurity, ref StackCrawlMark stackMark, Boolean
> forIntrospection)
> at System.Reflection.Assembly.Load(String assemblyString)
> at
> NHibernate
> .Util.ReflectHelper.TypeFromAssembly(AssemblyQualifiedTypeName name,
> Boolean throwOnError)
> at NHibernate.Util.ReflectHelper.ClassForName(String name)
> at
> NHibernate
> .Bytecode.AbstractBytecodeProvider.SetProxyFactoryFactory(String
> typeName)
>
>
> I've made sure to reference and mark to copy the
> NHibernate.ByteCode.Castle assembly and it's dependancies.
>
> As a matter of fact, when I do my configuration like this:
>
> var factory = Fluently.Configure(cfg)
>                 .Database(databaseConfigurer)
>                 .Mappings(m
> =>m.FluentMappings.AddFromAssemblyOf<PatientMap>()
>                              .ConventionDiscovery
> .AddFromAssemblyOf<PatientMap>())
>                 .ExposeConfiguration(c =>
>                                          {
>                                              ve =
> ConfigureValidator(c);
>
> c.SetProperty("adonet.batch_size", "5");
>
> c.SetProperty("generate_statistics", "true");
>
> c.SetProperty("proxyfactory.factory_class",
>                                                  typeof
> (NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName);
>                                          })
>                 .BuildSessionFactory();
>
> [Note the addition of:
>
> c.SetProperty("proxyfactory.factory_class",
>                                                  typeof
> (NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName);
>
> ]
>
> It compiles, but I get a new and exciting exception while configuring:
>
> System.Reflection.AmbiguousMatchException: Ambiguous match found.
> at System.RuntimeType.GetPropertyImpl(String name, BindingFlags
> bindingAttr, Binder binder, Type returnType, Type[] types,
> ParameterModifier[] modifiers)
> at System.Type.GetProperty(String name, BindingFlags bindingAttr)
> at NHibernate.Properties.BasicPropertyAccessor.GetSetterOrNull(Type
> type, String propertyName)
> at NHibernate.Properties.BasicPropertyAccessor.GetSetter(Type type,
> String propertyName)
> at NHibernate.Mapping.Property.GetSetter(Type clazz)
> at
> NHibernate.Tuple.Component.PocoComponentTuplizer.BuildSetter(Component
> component, Property prop)
> at
> NHibernate.Tuple.Component.AbstractComponentTuplizer..ctor(Component
> component)
> at NHibernate.Tuple.Component.PocoComponentTuplizer..ctor(Component
> component)
> at
> NHibernate
> .Tuple.Component.ComponentEntityModeToTuplizerMapping..ctor(Component
> component)
> at NHibernate.Tuple.Component.ComponentMetamodel..ctor(Component
> component)
> at NHibernate.Mapping.Component.BuildType()
> at NHibernate.Mapping.Component.get_Type()
> at NHibernate.Mapping.SimpleValue.IsValid(IMapping mapping)
> at NHibernate.Mapping.PersistentClass.Validate(IMapping mapping)
> at NHibernate.Mapping.RootClass.Validate(IMapping mapping)
> at NHibernate.Cfg.Configuration.Validate()
> at NHibernate.Cfg.Configuration.BuildSessionFactory()
> at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in
> FluentConfiguration.cs: line 93
>
>
> Any ideas?
>
> Also, why is the fluent access for setting the ProxyFactoryFactory
> hanging off the database configuration? I don't understand that. It
> doesn't really work for me there since I configure my database for
> different cases. Sqlite for unit tests vs. MS sql server 2005 for
> production.
>
> (FYI, the "ve = ConfigureValidator(c);" bit is the NHibernate
> Validator. I don't think it matters, but...)
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to