.NET 4.x NET Remoting (использование удалённых библиотек) - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте уважаемые. Есть такая проблема, не удаётся использовать методы расположенные на сервере. Библиотека расположенная на стороне клиента (интерфейс, который по идее должен реализоваться на сервере):
public enum User { Admin, RegularUser };
 
    public interface Class1
    {
        bool CheckLoginAndPassword(string ReceivedLogin, string ReceivedPassword, User UserType);
        bool Compare(string Login, string ReceivedLogin, string Password, string ReceivedPassword);
    }
Библиотека расположенная на стороне сервера:
public class Class1 : MarshalByRefObject
    {
        CheckLoginAndPassword(string ReceivedLogin, string ReceivedPassword, User UserType)
        {
            ...
            if (Compare(Login, ReceivedLogin, Password, ReceivedPassword))
                return true;
            else
                return false;
        }
 
        bool Compare(string Login, string ReceivedLogin, string Password, string ReceivedPassword)
        {
            return (Login == ReceivedLogin && Password == ReceivedPassword);
        }
    }
Серверное приложение:
static void Main(string[] args)
        {
            TcpChannel ServerChannel = new TcpChannel(555);
            ChannelServices.RegisterChannel(ServerChannel, true);
            RemotingConfiguration.RegisterWellKnownServiceType(typeof(LoginAndPassword.Class1), "AccessChecker", WellKnownObjectMode.SingleCall);
            Console.ReadLine();
        }
Клиентское приложение (создание экземпляра удалённого класса и его использование):
public bool CheckLogAndPass(string Login, string Password, User UserType)
        {
            TcpChannel ClientChannel = new TcpChannel();
            ChannelServices.RegisterChannel(ClientChannel, true);
            LoginAndPassword.Class1 RemoteObject = (LoginAndPassword.Class1)Activator.GetObject(typeof(LoginAndPassword.Class1), "tcp://localhost:555/AccessChecker");
            ClientChannel.StopListening(RemoteObject);
            bool Response = RemoteObject.CheckLoginAndPassword(Login, Password, UserType);
            return Response;
        }
Так вот, ошибка возникает на следующей строке:
bool Response = RemoteObject.CheckLoginAndPassword(Login, Password, UserType);

Вылетает SerializaionException. Текст исключения:

Не удалось загрузить тип LoginAndPassword.User, необходимый для десериализации.

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

Решение задачи: «.NET 4.x NET Remoting (использование удалённых библиотек)»

textual
Листинг программы
public class Class1 : MarshalByRefObject

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы