Serializing Filter, Group and Sort

Posts   
 
    
Darwin avatar
Darwin
User
Posts: 38
Joined: 12-Apr-2005
# Posted on: 08-Aug-2005 21:24:19   

I have the following interface:


Browse.ClientBrowse GetClientBrowse(IRelationPredicateBucket filter, IGroupByCollection group, ISortExpression sort, int maxItems, bool allowDuplicates, int pageSize, int pageNumber, string sessionID);

When the UI makes a call to the server (via .Net Remoting) using this interface I get the following exception:

************** Exception Text ************** System.Runtime.Serialization.SerializationException: Because of security restrictions, the type SD.LLBLGen.Pro.ORMSupportClasses.RelationPredicateBucket cannot be accessed. ---> System.Security.SecurityException: Request failed. at System.Security.SecurityRuntime.FrameDescSetHelper(FrameSecurityDescriptor secDesc, PermissionSet demandSet, PermissionSet& alteredDemandSet) at System.Runtime.Serialization.FormatterServices.nativeGetSafeUninitializedObject(RuntimeType type) at System.Runtime.Serialization.FormatterServices.GetSafeUninitializedObject(Type type) --- End of inner exception stack trace ---

Server stack trace: at System.Runtime.Serialization.FormatterServices.GetSafeUninitializedObject(Type type) at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObject(ParseRecord pr) at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr) at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record) at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum) at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run() at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, IMethodCallMessage methodCallMessage) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, IMethodCallMessage methodCallMessage) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.UnsafeDeserialize(Stream serializationStream, HeaderHandler handler) at System.Runtime.Remoting.Channels.CoreChannel.DeserializeBinaryRequestMessage(String objectUri, Stream inputStream, Boolean bStrictBinding, TypeFilterLevel securityLevel) at System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream)

Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at ExecutempsSW.Windows.Service.Interface.IServer.GetClientBrowse(IRelationPredicateBucket filter, IGroupByCollection group, ISortExpression sort, Int32 maxItems, Boolean allowDuplicates, Int32 pageSize, Int32 pageNumber, String sessionID) at ExecutempsSW.Windows.App.ESWMain.Browse.WinClientBrowse.FetchData() in c:\dev\esw\win\applications\eswdata\browse\winclientbrowse.cs:line 26 at ExecutempsSW.Windows.App.ESWMain.Datasets.ClientBrowseDataset.FetchData() in c:\dev\esw\win\applications\eswdata\datasets\clientbrowsedataset.cs:line 17 at ExecutempsSW.Windows.App.ESWMain.MainForm.ugrCliExpl_Focus(Object sender, EventArgs e) in c:\dev\esw\win\applications\prototype1\mainform.cs:line 1466 at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Windows.Forms.Control.OnGotFocus(EventArgs e) at Infragistics.Win.UltraWinGrid.UltraGrid.OnGotFocus(EventArgs e) at System.Windows.Forms.Control.WmSetFocus(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

It sounds like my filter, group and sort params are not serializable across the remote call. Can I / how do I make them serializable? Is there something else I'm missing?

Thanks, Darwin

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39927
Joined: 17-Aug-2003
# Posted on: 08-Aug-2005 22:25:42   
Frans Bouma | Lead developer LLBLGen Pro