public void FieldTest() { var timingHelper = new TimingHelper(_warmupIterations, _iterations); // One field. var oneFieldType = this._assembly.GetType("AssemblyToProcess.Performance.OneField"); var instance = (dynamic)Activator.CreateInstance(oneFieldType); var oneField = new OneField(); timingHelper.TimeIt("One Field", new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()), new TimingHelper.Data("Hand Copy", () => instance.HCopy()), new TimingHelper.Data("Clone", () => oneField.Clone()) ); // Five fields. var fiveFieldsType = this._assembly.GetType("AssemblyToProcess.Performance.FiveFields"); instance = (dynamic)Activator.CreateInstance(fiveFieldsType); var fiveFields = new FiveFields(); timingHelper.TimeIt("Five Fields", new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()), new TimingHelper.Data("Hand Copy", () => instance.HCopy()), new TimingHelper.Data("Clone", () => fiveFields.Clone()) ); // Ten fields. var tenFieldsType = this._assembly.GetType("AssemblyToProcess.Performance.TenFields"); instance = (dynamic)Activator.CreateInstance(tenFieldsType); var tenFields = new TenFields(); timingHelper.TimeIt("Ten Fields", new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()), new TimingHelper.Data("Hand Copy", () => instance.HCopy()), new TimingHelper.Data("Clone", () => tenFields.Clone()) ); }