 <pre><code>[WebMethod(Description = "Returns a Fruit XML")] public XmlElement GetALLFruits() { Fruit fruit = new Fruit(); fruit.Name = "Mango La Ka Buma"; fruit.expiryDate = "11/11/1911"; fruit = getFruitCrateDetails(fruit);//This is call to method 1. Don't worry your values will not be lost fruit.Name will remain as it is. return fruit.xml; //just giving example syntax might be wrong } public Fruit getFruitCrateDetails(Fruit fruit) { FruitCrate crate = new FruitCrate(); crate.id = 999; fruit.crate.Add(crate);//Now no other method should set crateValues return fruit; } public Fruit getFruitCrateDetails1(Fruit fruit) { SomeNewProperty = "test"; fruit.PropertyName = SomeNewProperty;//Now no other method should set value for SomeNewProperty return fruit; } </code></pre> <p>Please read the comments. And i have not tested the code. So there are possibilities that you may not get the desired output. I have tried my best to explain you.</p>