Hi all,
I am using a class to transport some data over the
network. I then added the [Serializable] attribute to the
class.
My problem is that this class is part of a framework and
that I do not want developers to call empty constructors.
But the runtime sends me an exception when I try to
serialize this class asking me to provide it with an
empty constructor such as:
public MyClass(){}
Is there a way to avoid that problem knowing that using
the ISerializable interface, it stills ask me to
implement an empty constructor?
Thanks for the help.
Amadrias 11 2202
I'm not exactly sure, but I think it will work even if you define the empty
constructor as private or protected.
Hope this helps,
Trev.
"Amadrias" <am******@wanad oo.fr> wrote in message
news:03******** *************** *****@phx.gbl.. . Hi all,
I am using a class to transport some data over the network. I then added the [Serializable] attribute to the class.
My problem is that this class is part of a framework and that I do not want developers to call empty constructors. But the runtime sends me an exception when I try to serialize this class asking me to provide it with an empty constructor such as:
public MyClass(){}
Is there a way to avoid that problem knowing that using the ISerializable interface, it stills ask me to implement an empty constructor?
Thanks for the help.
Amadrias
You could write your own serializer and de-serializer, but this would be
quite some work...
--
Greetz,
Jan
_______________ _________
Read my weblog: http://weblogs.asp.net/jan
"Amadrias" <am******@wanad oo.fr> schreef in bericht
news:03******** *************** *****@phx.gbl.. . Hi all,
I am using a class to transport some data over the network. I then added the [Serializable] attribute to the class.
My problem is that this class is part of a framework and that I do not want developers to call empty constructors. But the runtime sends me an exception when I try to serialize this class asking me to provide it with an empty constructor such as:
public MyClass(){}
Is there a way to avoid that problem knowing that using the ISerializable interface, it stills ask me to implement an empty constructor?
Thanks for the help.
Amadrias
Unfortunatelly, if you declare the constructor as private
or protected, it can not be called by the .Net framework
and then it doesn't work...
Still needs the empty constructor...
Thanks anyway...
Amadrias -----Original Message----- I'm not exactly sure, but I think it will work even if
you define the emptyconstructor as private or protected.
Hope this helps,
Trev.
"Amadrias" <am******@wanad oo.fr> wrote in message news:03******* *************** ******@phx.gbl. .. Hi all,
I am using a class to transport some data over the network. I then added the [Serializable] attribute to
the class.
My problem is that this class is part of a framework
and that I do not want developers to call empty
constructors. But the runtime sends me an exception when I try to serialize this class asking me to provide it with an empty constructor such as:
public MyClass(){}
Is there a way to avoid that problem knowing that using the ISerializable interface, it stills ask me to implement an empty constructor?
Thanks for the help.
Amadrias
.
Amadrias,
As Codemonkey suggested: private MyClass(){}
Or if this is a base class, use protected.
Is there a way to avoid that problem knowing that using the ISerializable interface, it stills ask me to implement an empty constructor?
ISerializable requires a special parameterized constructor, that requires
logic in it to do the deserialization itself!
The following three part article covers binary serialization in detail: http://msdn.microsoft.com/msdnmag/issues/02/04/net/ http://msdn.microsoft.com/msdnmag/issues/02/07/net/ http://msdn.microsoft.com/msdnmag/issues/02/09/net/
Hope this helps
Jay
"Amadrias" <am******@wanad oo.fr> wrote in message
news:03******** *************** *****@phx.gbl.. . Hi all,
I am using a class to transport some data over the network. I then added the [Serializable] attribute to the class.
My problem is that this class is part of a framework and that I do not want developers to call empty constructors. But the runtime sends me an exception when I try to serialize this class asking me to provide it with an empty constructor such as:
public MyClass(){}
Is there a way to avoid that problem knowing that using the ISerializable interface, it stills ask me to implement an empty constructor?
Thanks for the help.
Amadrias
> Unfortunatelly, if you declare the constructor as private or protected, it can not be called by the .Net framework and then it doesn't work...
Are you sure about this? I seem to remember having a problem like this
myself in the past that required me to have the empty constructor. The help
seemed to suggest that the framework used reflection to call the
constructor - thus it didn't matter if it was private or public scope.
If I can find the article, I'll post it here. If you get it working in the
meantime, let me know.
As Jay mentioned, ISerializable requires the following constructor:
--------------
Protected Sub New(ByVal info As
System.Runtime. Serialization.S erializationInf o, ByVal context As
System.Runtime. Serialization.S treamingContext )
End Sub
--------------
In this constructor, use the "info" parameter to deserialize your class.
Hope this helps,
Trev.
"Amadrias" <am******@wanad oo.fr> wrote in message
news:05******** *************** *****@phx.gbl.. . Unfortunatelly, if you declare the constructor as private or protected, it can not be called by the .Net framework and then it doesn't work...
Still needs the empty constructor...
Thanks anyway...
Amadrias
-----Original Message----- I'm not exactly sure, but I think it will work even if you define the emptyconstructor as private or protected.
Hope this helps,
Trev.
"Amadrias" <am******@wanad oo.fr> wrote in message news:03******* *************** ******@phx.gbl. .. Hi all,
I am using a class to transport some data over the network. I then added the [Serializable] attribute to the class.
My problem is that this class is part of a framework and that I do not want developers to call empty constructors. But the runtime sends me an exception when I try to serialize this class asking me to provide it with an empty constructor such as:
public MyClass(){}
Is there a way to avoid that problem knowing that using the ISerializable interface, it stills ask me to implement an empty constructor?
Thanks for the help.
Amadrias
.
Thanks Trev.
I am not completely sure about it but I already met this
problem before. And trying to solve it, I did try both
solutions:
1. Use the private empty constructor.
Result: Runtime Exception: asking for empty constructor.
2. Implement ISerializable using SerializationIn fo
Result: Runtime Exception: asking for empty constructor.
I also tried to put both at the same time and it didn't
work neither.
As I mentionned above, it has been some months since I
tried this and it worth trying it again.
I'll keep you updated about it...
Amadrias -----Original Message----- Unfortunatelly, if you declare the constructor as private or protected, it can not be called by the .Net framework and then it doesn't work... Are you sure about this? I seem to remember having a
problem like thismyself in the past that required me to have the empty
constructor. The helpseemed to suggest that the framework used reflection to
call theconstructor - thus it didn't matter if it was private or
public scope. If I can find the article, I'll post it here. If you get
it working in themeantime, let me know.
As Jay mentioned, ISerializable requires the following
constructor: --------------
Protected Sub New(ByVal info As System.Runtime .Serialization. SerializationIn fo, ByVal
context AsSystem.Runtime .Serialization. StreamingContex t)
End Sub
--------------
In this constructor, use the "info" parameter to
deserialize your class. Hope this helps,
Trev.
"Amadrias" <am******@wanad oo.fr> wrote in message news:05******* *************** ******@phx.gbl. .. Unfortunatelly, if you declare the constructor as
private or protected, it can not be called by the .Net
framework and then it doesn't work...
Still needs the empty constructor...
Thanks anyway...
Amadrias
>-----Original Message----- >I'm not exactly sure, but I think it will work even if you define the empty >constructor as private or protected. > >Hope this helps, > >Trev. > > >"Amadrias" <am******@wanad oo.fr> wrote in message >news:03******* *************** ******@phx.gbl. .. >> Hi all, >> >> I am using a class to transport some data over the >> network. I then added the [Serializable] attribute
to the >> class. >> >> My problem is that this class is part of a framework and >> that I do not want developers to call empty constructors. >> But the runtime sends me an exception when I try to >> serialize this class asking me to provide it with an >> empty constructor such as: >> >> public MyClass(){} >> >> Is there a way to avoid that problem knowing that
using >> the ISerializable interface, it stills ask me to >> implement an empty constructor? >> >> Thanks for the help. >> >> Amadrias > > >. >
.
Sorry it hasn't worked. If you could possibly post a short example of how to
recreate the problem (maybe a simple small class), you might be able to get
better help. A full description of the exception and stack trace might help
too. What type of exception is being thorwn? The one I've seen before is
usually a SerializationEx ception.
"Amadrias" <am******@wanad oo.fr> wrote in message
news:00******** *************** *****@phx.gbl.. . Thanks Trev.
I am not completely sure about it but I already met this problem before. And trying to solve it, I did try both solutions:
1. Use the private empty constructor. Result: Runtime Exception: asking for empty constructor.
2. Implement ISerializable using SerializationIn fo Result: Runtime Exception: asking for empty constructor.
I also tried to put both at the same time and it didn't work neither.
As I mentionned above, it has been some months since I tried this and it worth trying it again.
I'll keep you updated about it...
Amadrias
-----Original Message----- Unfortunatelly, if you declare the constructor as private or protected, it can not be called by the .Net framework and then it doesn't work...
Are you sure about this? I seem to remember having a problem like thismyself in the past that required me to have the empty constructor. The helpseemed to suggest that the framework used reflection to call theconstructor - thus it didn't matter if it was private or public scope. If I can find the article, I'll post it here. If you get
it working in themeantime, let me know.
As Jay mentioned, ISerializable requires the following constructor: --------------
Protected Sub New(ByVal info As System.Runtime .Serialization. SerializationIn fo, ByVal
context AsSystem.Runtime .Serialization. StreamingContex t)
End Sub
--------------
In this constructor, use the "info" parameter to deserialize your class. Hope this helps,
Trev.
"Amadrias" <am******@wanad oo.fr> wrote in message news:05******* *************** ******@phx.gbl. .. Unfortunatelly, if you declare the constructor as private or protected, it can not be called by the .Net framework and then it doesn't work...
Still needs the empty constructor...
Thanks anyway...
Amadrias
>-----Original Message----- >I'm not exactly sure, but I think it will work even if you define the empty >constructor as private or protected. > >Hope this helps, > >Trev. > > >"Amadrias" <am******@wanad oo.fr> wrote in message >news:03******* *************** ******@phx.gbl. .. >> Hi all, >> >> I am using a class to transport some data over the >> network. I then added the [Serializable] attribute to the >> class. >> >> My problem is that this class is part of a framework and >> that I do not want developers to call empty constructors. >> But the runtime sends me an exception when I try to >> serialize this class asking me to provide it with an >> empty constructor such as: >> >> public MyClass(){} >> >> Is there a way to avoid that problem knowing that using >> the ISerializable interface, it stills ask me to >> implement an empty constructor? >> >> Thanks for the help. >> >> Amadrias > > >. >
.
Amadrias,
The serialization code has the ability to call private & protected
constructors via a special option on the "reflection " call that it is using
to create the object indirectly.
See the articles in my other post for details.
Are you using Binary serialization or XML serialization?
Hope this helps
Jay
"Amadrias" <am******@wanad oo.fr> wrote in message
news:05******** *************** *****@phx.gbl.. . Unfortunatelly, if you declare the constructor as private or protected, it can not be called by the .Net framework and then it doesn't work...
Still needs the empty constructor...
Thanks anyway...
Amadrias
-----Original Message----- I'm not exactly sure, but I think it will work even if you define the emptyconstructor as private or protected.
Hope this helps,
Trev.
"Amadrias" <am******@wanad oo.fr> wrote in message news:03******* *************** ******@phx.gbl. .. Hi all,
I am using a class to transport some data over the network. I then added the [Serializable] attribute to the class.
My problem is that this class is part of a framework and that I do not want developers to call empty constructors. But the runtime sends me an exception when I try to serialize this class asking me to provide it with an empty constructor such as:
public MyClass(){}
Is there a way to avoid that problem knowing that using the ISerializable interface, it stills ask me to implement an empty constructor?
Thanks for the help.
Amadrias
.
Thanks jay,
I am doing both serialization:
- XML for clear object transportation over the network
- Binary for file serialization.
Amadrias -----Original Message----- Amadrias, The serialization code has the ability to call private &
protectedconstructors via a special option on the "reflection "
call that it is usingto create the object indirectly.
See the articles in my other post for details.
Are you using Binary serialization or XML serialization?
Hope this helps Jay
"Amadrias" <am******@wanad oo.fr> wrote in message news:05******* *************** ******@phx.gbl. .. Unfortunatelly, if you declare the constructor as
private or protected, it can not be called by the .Net
framework and then it doesn't work...
Still needs the empty constructor...
Thanks anyway...
Amadrias
>-----Original Message----- >I'm not exactly sure, but I think it will work even if you define the empty >constructor as private or protected. > >Hope this helps, > >Trev. > > >"Amadrias" <am******@wanad oo.fr> wrote in message >news:03******* *************** ******@phx.gbl. .. >> Hi all, >> >> I am using a class to transport some data over the >> network. I then added the [Serializable] attribute
to the >> class. >> >> My problem is that this class is part of a framework and >> that I do not want developers to call empty constructors. >> But the runtime sends me an exception when I try to >> serialize this class asking me to provide it with an >> empty constructor such as: >> >> public MyClass(){} >> >> Is there a way to avoid that problem knowing that
using >> the ISerializable interface, it stills ask me to >> implement an empty constructor? >> >> Thanks for the help. >> >> Amadrias > > >. >
. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: ofer |
last post by:
Hi,
I am working with the beta version of the new .net framework (Whidbey) and I
encountered a problem with serialization that did'nt exist in the .net 2003
the situation is like this :
I have a class that inherits from dataset, and I want to serialize it , so I
created a serialization constructor that forwards the call to the base class
(the dataset) serialization constructor, normally, for this action to
succeed I am supposed to put...
|
by: keith bannister via .NET 247 |
last post by:
(Type your message here)
--------------------------------
From: keith bannister
Hi,
I'm new to .net (as of last week) but here goes.
I want to serialize/deserialize a file the conforms to an XML schema (xsd).
|
by: Keith Bannister |
last post by:
I'm new to .net so here goes.
I'm tying to deserialize a class that is associated with an XML
schema.
I created the C# class with xsd.exe as below:
xsd.exe /c /n:somenamespace properties.xsd
this creates properties.cs
|
by: ofer |
last post by:
Hi,
I am working with the beta version of the new .net framework (Whidbey) and I
encountered a problem with serialization that did'nt exist in the .net 2003
the situation is like this :
I have a class that inherits from dataset, and I want to serialize it , so I
created a serialization constructor that forwards the call to the base class
(the dataset) serialization constructor, normally, for this action to
succeed I am supposed to put...
|
by: Ben Amada |
last post by:
I've created a class that I need to store in ViewState. However when I try
to store it in ViewState, I get the following error:
"The type 'solution.pe2' must be marked as Serializable or have a
TypeConverter other than ReferenceConverter to be put in viewstate."
I've included the <Serializable()> attribute, but I'm still getting the same
error.
The class is below ... as you can see it contains a Collection, two
| |
by: Amadrias |
last post by:
Hi all,
I am using a class to transport some data over the
network. I then added the attribute to the
class.
My problem is that this class is part of a framework and
that I do not want developers to call empty constructors.
But the runtime sends me an exception when I try to
serialize this class asking me to provide it with an
|
by: Corey B |
last post by:
Is there a way for an instance of a custom class to access an ASPX page
level variable? I know that I can access a Session variable from
within a class using the following code:
myClassVar =
System.Web.HttpContext.Current.Session.Item("mySessionVar")
But I can't figure out if it is possible to access a page level
variable from within a class.
|
by: Simon Hart |
last post by:
Hi,
I am trying to implement some functionality as seen in MS CRM 3.0 whereby a
basic Xml is deserialized into an object which contains properties. What I
want to do from here is; cast the basic object into a more strongly typed
class which knows what properties to expect.
The basic top level class is as follows:
using System;
|
by: Tantr Mantr |
last post by:
Hello ,
I have a class which I serialize using XMLSerializer.
This class has public properties which are based on other interfaces.
Because of this I am unable to serialize the object.
Error : There was an error reflecting the type XXXX
Is there any way to serialize this object w/o moving away from Interface
based classes.
Many Thanks!
Eg.
//=========Interfaces===============
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
| |
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
| |
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |