Piszę aplikację .NET Remoting. Mam wszystkie moje biblioteki dll, serwer i klient działają poprawnie. Jednak, gdy próbuję zmienić wywołanie metody, aby pobrać parametr obiektu zamiast prostego typu, takiego jak int, narzeka z tym błędem..NET Remoting, przekazywanie obiektów do metod
Rodzaj System.Runtime.Remoting.ObjRef i typy od niego (jak System.Runtime.Remoting.ObjRef) nie mogą być rozszeregować na tym poziomie bezpieczeństwa.
Ta metoda jest podobna do tej.
public List<Orders> GetOrders(int UserID) { //Works
public List<Orders> GetOrders(Users user) { // Doesnt Work
[Serializable]
public class Users : MarshalByRefObject {
Teraz zrobiłem klasa User również [Serializable] i biorąc pod uwagę to MarshalByRefObject dziedziczenie. Czy to może być mój problem? Próbowałem usunąć [Serializable] z klasy User i narzeka, ponieważ nie może tego zinterpretować.
EDYTOWANIE OK, oto moja metoda klienta.
IChannel channel = new TcpClientChannel();
ChannelServices.RegisterChannel(channel, false);
CustomType Server = (CustomType)Activator.GetObject(typeof(CustomType), "tcp://localhost:9934/CustomType");
Oto mój serwer.
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();
Czy próbowałeś usuwając ' MarshalByRefObject' z klasy Users? –
Nie w pełni wypróbowałem, że pozwól mi wrócić i upewnij się, że – meanbunny
Po usunięciu MarshalByRefObject nie pomogło, dzięki! – meanbunny