.NET Remoting, передача объектов в методы

Я пишу приложение .NET Remoting. У меня есть dll, сервер и клиент, все работает правильно. Однако, когда я пытаюсь изменить вызов метода, чтобы он принимал параметр объекта, а не простой тип, например int, он выдает ошибку.

Тип System.Runtime.Remoting.ObjRef и типы из него (такие как System.Runtime.Remoting.ObjRef) не разрешено десериализовывать на этом уровне безопасности.

Метод выглядит примерно так.

public List<Orders> GetOrders(int UserID) { //Works

public List<Orders> GetOrders(Users user) { // Doesnt Work

[Serializable]
public class Users : MarshalByRefObject {

Теперь я сделал класс User также [Serializable] и дал ему наследование MarshalByRefObject. Может ли это быть моей проблемой? Я пробовал удалить [Serializable] из класса User, но он жалуется, потому что не может его интерпретировать.

EDIT. Хорошо, вот мой клиентский метод.

IChannel channel = new TcpClientChannel();
ChannelServices.RegisterChannel(channel, false);
CustomType Server = (CustomType)Activator.GetObject(typeof(CustomType), "tcp://localhost:9934/CustomType");

Вот мой сервер.

BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
provider.TypeFilterLevel = TypeFilterLevel.Full;
IDictionary props = new Hashtable();
props["port"] = 9934;
TcpChannel channel = new TcpChannel(props, null, provider);
ChannelServices.RegisterChannel(channel);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(CustomType), "CustomType", WellKnownObjectMode.Singleton);
Console.WriteLine("Server is initialized");
Console.ReadLine();
8
задан John Saunders 13 February 2012 в 22:40
поделиться