public static void Main()
ObjectA objectA = new ObjectA();
objectA.Name = "Joe King";
Console.WriteLine("BEFORE");
Console.WriteLine(objectA.Id.ToString() + "|" + objectA.Name);
ObjectB objectB = new ObjectB(objectA);
Console.WriteLine("AFTER");
Console.WriteLine(objectA.Id.ToString() + "|" + objectA.Name);
ObjectA _objACopy = null;
public ObjectB(ObjectA objA)
_objACopy = Object.Clone<ObjectA>(objA);
public void DoSomething()
_objA.Name = "Bob Smith";
_objA.Name = _objACopy.Name;
public string Name {get;set;}
public static T Clone<T>(T source)
var serialized = JsonConvert.SerializeObject(source);
return JsonConvert.DeserializeObject<T>(serialized);