array, xmlserializer and inheritance

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Smola (spam_at_supersmola.net)
Date: 01/25/05


Date: Tue, 25 Jan 2005 17:48:36 +0100


Hi all,

I have a situation like this:

abstract class A
{
  public ArrayList List;
  // This list will contain objects of derived classes - like B
}

class B : A
{

}

I need to serialize class B with XmlSerializer but in the class A i
cannot define what type will go in the List (with XmlArrayItem) because
the class is abstract and I don't know what types can be derived from
it.

How can I define this in the class B? Is this approach ok:

class B : A
{
  [XmlArray, XmlArrayItem (Type = typeof(B))
  new public ArrayList List;
}

Thanks.

-- 
That's me favorite shirt. That's me only shirt!


Relevant Pages

  • Re: Abstract class or interface?
    ... I try to make the decision based on the relationship of the derived class to the base class. ... If the derived class "can act like" the type of the base class, I'd lean towards an interface. ... I understand the abstract class can have implementation in its methods and derived classes can only inherit one abstract class. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: array, xmlserializer and inheritance
    ... This is very similar to the Registry pattern ... > // This list will contain objects of derived classes - like B ... > I need to serialize class B with XmlSerializer but in the class A i ...
    (microsoft.public.dotnet.framework)
  • XmlSerializer and DefaultValue?
    ... handmade Xml parsing code, but am having a few small issues with ... default values and derived classes. ... public int AValue ...
    (microsoft.public.dotnet.xml)
  • Re: oops questions c#
    ... classes.My base class cannot be a abstract class. ... explicitly implement an interface for all derived classes. ... Working on the assumption it is legit, a simple solution would be to mark the method as virtual in the base class and have it throw a NotImplementedException. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Abstract class or interface?
    ... > I'm still trying to figure out concrete reasons to use one over the other. ... > in its methods and derived classes can only inherit one abstract class. ... The interface properties/methods have no implementation. ...
    (microsoft.public.dotnet.languages.csharp)