public void CreateImprint()
 {
     ExampleObj     = new ExampleObject();
     ExampleImprint = new Imprint <ExampleObject>(this.ExampleObj);
     this.Output1   = ExampleImprint.Value.P1;
     this.Output2   = ExampleObj.P1;
 }
        public void AutoImprint()
        {
            var x = new ExampleObject();

            Debug.WriteLine(x.P1);

            using (var imp = x.ToAutoImprint())
            {
                x.P1 = 10;
                Debug.WriteLine(x.P1);
            }

            Debug.WriteLine(x.P1);
        }