public void Test1()
        {
            var fixture1 = new TestPropertyProxyFixture1();
            var fixture2 = new TestPropertyProxyFixture2
            {
                P46 = 10
            };
            var fixture3 = new TestPropertyProxyFixture3
            {
                P152 = 15
            };
            var proxy1 = new MyPropertiesProxy <ITestPropertyProxyFixture1>(
                fixture1,
                new List <PropertyBindingInfo>()
            {
                PropertyBindingInfo.Create(
                    fixture2,
                    new List <Tuple <string, string> >()
                {
                    new Tuple <string, string>(
                        fixture1.MyNameOfProperty(e => e.P1),
                        fixture2.MyNameOfProperty(e => e.P46)
                        )
                }
                    ),
                PropertyBindingInfo.Create(
                    fixture3,
                    new List <Tuple <string, string> >()
                {
                    new Tuple <string, string>(
                        fixture1.MyNameOfProperty(e => e.P2),
                        fixture3.MyNameOfProperty(e => e.P152)
                        )
                }
                    )
            }
                ).GetProxy();

            _output.WriteLine("{0}", proxy1.P1);
            _output.WriteLine("{0}", proxy1.P2);
            _output.WriteLine("{0}", proxy1.P3);
            /**/
            proxy1.P1 = 1000;
            _output.WriteLine("{0}", fixture2.P46);
            proxy1.P2 = 2000;
            _output.WriteLine("{0}", fixture3.P152);
            proxy1.P3 = 52700;
            _output.WriteLine(proxy1.WriteObjectToJson());
            _output.WriteLine(fixture2.WriteObjectToJson());
            _output.WriteLine(fixture3.WriteObjectToJson());
        }
 public void Test1()
 {
     var fixture1 = new TestPropertyProxyFixture1();
     var fixture2 = new TestPropertyProxyFixture2
     {
         P46 = 10
     };
     var fixture3 = new TestPropertyProxyFixture3
     {
         P152 = 15
     };
     var proxy1 = new MyPropertiesProxy<ITestPropertyProxyFixture1>(
         fixture1,
         new List<PropertyBindingInfo>()
         {
             PropertyBindingInfo.Create(
                 fixture2,
                 new List<Tuple<string, string>>()
                 {
                     new Tuple<string, string>(
                         fixture1.MyNameOfProperty(e => e.P1), 
                         fixture2.MyNameOfProperty(e => e.P46)
                     )
                 }
             ),
             PropertyBindingInfo.Create(
                 fixture3,
                 new List<Tuple<string, string>>()
                 {
                     new Tuple<string, string>(
                         fixture1.MyNameOfProperty(e => e.P2), 
                         fixture3.MyNameOfProperty(e => e.P152)
                     )
                 }
             )
         }
     ).GetProxy();
     _output.WriteLine("{0}", proxy1.P1);
     _output.WriteLine("{0}", proxy1.P2);
     _output.WriteLine("{0}", proxy1.P3);
     /**/
     proxy1.P1 = 1000;
     _output.WriteLine("{0}", fixture2.P46);
     proxy1.P2 = 2000;
     _output.WriteLine("{0}", fixture3.P152);
     proxy1.P3 = 52700;
     _output.WriteLine(proxy1.WriteObjectToJson());
     _output.WriteLine(fixture2.WriteObjectToJson());
     _output.WriteLine(fixture3.WriteObjectToJson());
 }