?
Solved

Parent - Child

Posted on 2009-03-30
3
Medium Priority
?
336 Views
Last Modified: 2012-05-06
Hello,

I have a class called "Template" and one more class called "TemplateCollections" (This is just a collection Template classes)

I will be serializing the TemplateCollections class and sending to a different .net application, where they will be deserializing the object back.

When I add Template class to TemplateCollections, I would like to maintain a parent-child relation between the classes.

For e.g I have 4 Template classes - Template1, Template2, Template3, Template4
where
Template2 is child of Template1
Template3 is child of Template2
Template4 is child of Template1

What is the optimized way of achieving this, considering the serialization process?



0
Comment
Question by:praveenuni
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 6

Expert Comment

by:Nandakumar Sakthivel
ID: 24026831
hi ,

I had given a code snippet which defines the template class , the template class has two properties
 
  1. Template Name
  2. TemplateCollection

Template template1 = New Template();

( TemplateCollection  can have list of templates -> from ur example we can have "template2" and "Template4" in this collection )
 
  So template1 will have two child templates --> "template2" and "template4"

  from ur example "template3" should be child of "template2" that should also be possible.
 
  It will hold good for serialization also as we have the collection class.
 
  I am not sure whether you are looking for something like the above one.

 hope it helps

 Thanks,
 Nanda
 
[Serializable]
public class Template
{
    private string _templateName;
    private Template _childTemplateObj;
 
    public string TemplateName
    {
        get
        {
            return _templateName;
        }
        set
        {
           _templateName = value;
        }
    }
 
    // This is of type "Template" class this can hold template 
    public TemplateCollection ChildTemplateList
    {
        get
        {
            return _childTemplateObj;
        }
        set
        {
            _childTemplateObj = value;
        }
    }
}
 
// This holds the list of "Template" class
public class templateCollection
{   
}

Open in new window

0
 

Author Comment

by:praveenuni
ID: 24027770
Thanks Nanda. Since we are doing serilization, the size of the final object will be increase a lot. Is there a way we can define parent for every object instead of defining the children?
0
 
LVL 6

Accepted Solution

by:
Nandakumar Sakthivel earned 2000 total points
ID: 24028262
Praveenuni ,

you need to decide during serialization what do you want to serialize in the sense do you want to serialize only the parent object or the whole object.

I can suggest two solutions

solution 1:

If you need to reduce the size of the object after serialization probably use "XmlIgnoreAttribute" (something like this) to block the unwanted attributes from serialization.

solution 2:

To define parent for every object , have two more properties named Template_Id and Parent_template_Id so that the template can be identified uniquely , following points need to be taken care

   1. The template_id needs to be assigned a unique value while creating an object
   2. The Parent_template_id needs to assigned null if it is the parent element or else this should hold the parent Template_Id
   3. For generating unique Id probably you can use GUID or you can use your own logic and can have a data structure which holds the parent child relationship
 
Hope the state will be maintained for all these actions

Hope this helps

Thanks,
Nanda
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
Suggested Courses

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question