|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
Remoting Problem - Object reference not set to an instanceHello,
i really urgent need some help!! i'm trying to port a C# remotingproject over to mono. The project uses a singleton SAO as a factory for the CAO (Client). When i try to call a function (Client.AreUAlive()) at the Client i will get a "Object reference not set error". The curios is that this is working without any problem in C# (VS 2005). I'm using Ubuntu 9.10 and Mono JIT 2.4.2.3 x86 in a VirtualBox environment. Is this a bug in mono or do i miss something??? Many thanks in advance. Structure: I'm using TCP-Channel and binary formatters. The SAO and CAO are exposed not directly but through Interfaces (IRemotedClientFactory & IRemotedClientObject) defined in a shared DLL. The Server holds the classes for the ClientFactory and the RemotedClientObject (these are not shared to the client). The client will get the clientobject by calling a function of the remoted factory (this is because to avoid providing the clientobjects code to the client-app). The clientobject exposes the method and functions to the clients. Source: * Shared DLL * *********** Public Interface IRemotedClientFactory Function Reachable() As Boolean Function GetClientObject(ByVal sDataSourceName As String, ByVal sServerIP As String) As FactoryReturnObject Event NotifyEvent As FactoryNotificationEventHandler End Interface Public Interface IRemotedClientObject Function Execute(ByVal sCommand As String, ByVal oParams() As Object) As Object Function AreUAlive() As Boolean End Interface ... <Serializable()> _ Public Class FactoryReturnObject Inherits MarshalByRefObject Public IsSuccess As Boolean = False Public ErrorID As Integer = -1 Public ErrorMessage As String = "" Public ClientObject As IRemotedClientObject Public Sub New(ByVal oClientObject As IRemotedClientObject) IsSuccess = True ClientObject = oClientObject End Sub Public Sub New(ByVal iErrID As Integer, ByVal sErrMsg As String) IsSuccess = False ErrorID = iErrID ErrorMessage = sErrMsg End Sub End Class * Server * ******** public class RemotedClientFactory : MarshalByRefObject, RemotePresenterDLL.IRemotedClientFactory { public RemotePresenterDLL.FactoryReturnObject GetClientObject(string sClientID, string sServerIP) { // This is called by the client to get the clientobject ... // return object return new RemotePresenterDLL.FactoryReturnObject(new RemotedClientObject(sClientIP, sClientID)); } ... } public class RemotedClientObject : MarshalByRefObject, RemotePresenterDLL.IRemotedClientObject { public Boolean AreUAlive() { // This causes the error !!! return true; } ... } * Client * ******* // Vars RemotePresenterDLL.IRemotedClientFactory m_oFactory; RemotePresenterDLL.IRemotedClientObject m_oRemotedClient; RemotePresenterDLL.FactoryReturnObject oFactRet; private void Connect() { ... m_oFactory = Activator.GetObject(typeof(RemotePresenterDLL.IRemotedClientFactory), "<NameOfTCPChannel>") as RemotePresenterDLL.IRemotedClientFactory; oFactRet = m_oFactory.GetClientObject(<>,<>); m_oRemotedClient = oFactRet.ClientObject; oFactRet.ClientObject = null; // Needs to be set under Win because of GarbColl in Server!! // This call causes the error !! bTmp = m_oRemotedClient.AreUAlive(); } |
|
|
Re: Re moting Problem - Object reference not set to an instancehematec wrote:
> Hello, > > i really urgent need some help!! > i'm trying to port a C# remotingproject over to mono. > The project uses a singleton SAO as a factory for the CAO (Client). Please file a bug with a self-contained compilable test case at http://mono-project.com/Bugs. Robert _______________________________________________ Mono-list maillist - Mono-list@... http://lists.ximian.com/mailman/listinfo/mono-list |
| Free embeddable forum powered by Nabble | Forum Help |