में ऑब्जेक्ट पास करना मैं एक .NET Remoting एप्लिकेशन लिख रहा हूं। मेरे पास मेरा डीएलएल, सर्वर और क्लाइंट सही ढंग से काम कर रहा है। हालांकि, जब मैं एक int प्रकार की तरह एक सामान्य प्रकार के बजाय ऑब्जेक्ट पैरामीटर लेने के लिए अपनी विधि कॉल को बदलने का प्रयास करता हूं, तो यह इस त्रुटि से शिकायत करता है।.NET Remoting, विधियों को
प्रकार System.Runtime.Remoting.ObjRef और यह (जैसे System.Runtime.Remoting.ObjRef) से प्रकार इस सुरक्षा स्तर पर deserialized किए जाने की अनुमति नहीं है।
विधि इस तरह कुछ है।
public List<Orders> GetOrders(int UserID) { //Works
public List<Orders> GetOrders(Users user) { // Doesnt Work
[Serializable]
public class Users : MarshalByRefObject {
अब मैं उपयोगकर्ता वर्ग भी बना दिया है, [Serializable] और यह दिया MarshalByRefObject विरासत। क्या यह मेरी समस्या हो सकती है? मैंने उपयोगकर्ता वर्ग से [Serializable] को हटाने का प्रयास किया है और यह शिकायत करता है क्योंकि यह इसकी व्याख्या नहीं कर सकता है।
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();
आप को दूर करने की कोशिश की है 'द्वारा उपयोगकर्ता वर्ग से मार्शल ByRefObject'? –
मैंने पूरी तरह से कोशिश नहीं की है कि मुझे वापस जाने दें और सुनिश्चित करें कि – meanbunny
जब मैंने मार्शलबीरफॉब्जेक्ट को हटा दिया तो यह मदद नहीं की, धन्यवाद! – meanbunny