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