Я пишу приложение .NET Remoting. У меня всегда работает моя dll, сервер и клиент. Однако, когда я пытаюсь изменить вызов метода для принятия параметра объекта вместо простого типа типа int, он жалуется на эту ошибку..NET Remoting, передача объектов в методы
Тип 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 {
Теперь я сделал класс Пользователь также, [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();
Вы пробовали путем удаления ' MarshalByRefObject' из класса Users? –
Я еще не пробовал, что позволил мне вернуться и убедиться, что – meanbunny
Когда я удалил MarshalByRefObject, он не помог, спасибо! – meanbunny