This is an aweful idea. you will find out why in.... i guess 2-3 months Please dont distribute your NH objects, yeah its sounds like a cool thing to do, but its not.
On Feb 3, 3:13 pm, Peter Derwa <[email protected]> wrote: > Hi Allan, I don't want to remove the lazy loading, i want to overwrite > it with a service call to do the lazy loading! > > grt > > On 2 feb, 14:58, "[email protected]" <[email protected]> > wrote: > > > What you need is a data contract serializer to push data across the > > pipe (the example below is only for outgoing). If it see's an > > uninitialized proxy, it will skip serialization on it. > > > using System; > > using System.CodeDom; > > using System.Reflection; > > using System.Runtime.Serialization; > > using System.Collections.ObjectModel; > > using log4net; > > using NHibernate.Proxy; > > > namespace MyNamespace.ServiceModel { > > public class NhDataContractSurrogate : IDataContractSurrogate { > > private static readonly ILog log = LogManager.GetLogger(typeof > > (NhDataContractSurrogate)); > > > #region IDataContractSurrogate Members > > public object GetObjectToSerialize(object obj, Type > > targetType) { > > log.Debug("Checking object"); > > var proxy = obj as INHibernateProxy; > > if (proxy != null) { > > log.Debug("Hibernate proxy found"); > > var li = proxy.HibernateLazyInitializer; > > if (li.IsUninitialized) { > > log.Debug("Hibernate proxy is not initialized and > > will not be serialized"); > > obj = null; > > } > > else { > > obj = li.GetImplementation(); > > log.DebugFormat( > > "Hibernate proxy was initialized and has been > > casted to its implementation of type '{0}'", > > obj.GetType().FullName > > ); > > } > > } > > return obj; > > } > > > public object GetCustomDataToExport(Type clrType, Type > > dataContractType) { > > return null; > > } > > > public object GetCustomDataToExport(MemberInfo memberInfo, > > Type dataContractType) { > > return null; > > } > > > public Type GetDataContractType(Type type) { > > return type; > > } > > > public object GetDeserializedObject(object obj, Type > > targetType) { > > return obj; > > } > > > public void GetKnownCustomDataTypes(Collection<Type> > > customDataTypes) { > > } > > > public Type GetReferencedTypeOnImport(string typeName, string > > typeNamespace, object customData) { > > return null; > > } > > > public CodeTypeDeclaration ProcessImportedType > > (CodeTypeDeclaration typeDeclaration, CodeCompileUnit compileUnit) { > > return typeDeclaration; > > } > > > #endregion > > } > > > } > > > On Feb 2, 5:37 am, Peter Derwa <[email protected]> wrote: > > > > Hey, > > > > I've downloaded the new version of NHibernate and I found some > > > comments about the possibilities to create your own custom lazy loader > > > for the new NHibernate version. > > > Now that looks great!!! we are using a WCF Service so we are currently > > > working with lazy = false, and that kinda sucks big time, because when > > > loading a complete table with lots of relations, that will consume > > > quite allot of time. > > > > Could someone point me into a right direction of how to do that? I was > > > not able to find the right article yet. > > > One note to keep in mind, we have multiple projects aka databases, so > > > in my lazy loading customization i'll have to be able to add that > > > project ID to create a session to the right database! > > > > grt -- You received this message because you are subscribed to the Google Groups "nhusers" 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/nhusers?hl=en.
