private void Button_Click_1(object sender, RoutedEventArgs e) { var ser = new MySerializer(); var obj = new MetroDto.TestClass { EnumVal = MetroDto.MyEnum.Bar }; var clone2 = (MetroDto.TestClass)ser.DeepClone(obj); var clone3 = Serializer.DeepClone(obj); // runtime ReadProto(((Button)sender)); //((Button)sender).Content = clone.Foo + ", " + clone.Bar; }