Remoting : Overførelse af egne klasser
Hej alle eksperterJeg har lavet noget remoting vha interface, men har lidt problemer med at overføre objekter jeg selv har lavet.
Klienten(har ref. til Common) indeholder
myObj og Program
using System;
using System.Collections.Generic;
using System.Text;
namespace Client
{
[Serializable]
public class myObj : MarshalByRefObject
{
private string data;
public myObj(string data)
{
this.data = data;
}
public string getData()
{
return data;
}
}
}
using System;
using System.Runtime.Remoting;
using Common;
namespace Client
{
class Program
{
static void Main(string[] args)
{
ImyInterface myI = (ImyInterface)RemotingServices.Connect(typeof(ImyInterface),
"http://localhost:8085/myServer.rem");
//Skriver en string
Console.WriteLine(myI.getString());
//Henter og objekt og skriver value ud
myObj obj = myI.getObj();
Console.WriteLine(obj.getData());
Console.ReadLine();
}
}
}
Common indeholder
using System;
using System.Collections.Generic;
using System.Text;
namespace Common
{
public interface ImyInterface
{
string getString();
myObj getObj();
}
}
Server indeholder (har ref til Common)
myObj(samme som klient), Program og Server
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
namespace Server
{
class Program
{
static void Main(string[] args)
{
IChannel channel = new HttpChannel(8085);
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(myServer),
"myServer.rem",
WellKnownObjectMode.SingleCall);
Console.WriteLine("Server Running - Press <Enter> to quit");
Console.ReadLine();
}
}
}
using System;
using Common;
namespace Server
{
class myServer : MarshalByRefObject, ImyInterface
{
myObj obj;
public myServer()
{
this.obj = new myObj("Obj test");
}
public string getString()
{
return "String test";
}
public myObj getObj()
{
return obj;
}
}
}
Håber der er en der kan hjælpe, er garanteret en lille ting. String tingen virker fint, men udbyggelse med overførelse af objekter er FUBAR.
Maze-