public void FauxTypeTest() { var testProp = new Dictionary <String, Type>() { { "test", typeof(bool) } }; var propType = new PropretySpecType(testProp); var propMembers = propType.GetMemberNames(); Expect(propMembers, Contains("test")); var realType = new RealType(typeof(ISimpeleClassProps)); var realMembers = realType.GetMemberNames(); Expect(realMembers, Contains("Prop2")); var aggrType = new AggreType(propType, realType); var aggrMembers = aggrType.GetMemberNames(); Expect(aggrMembers, Contains("Prop2")); Expect(aggrMembers, Contains("test")); }
/// <summary> /// Method used to Initialize Proxy /// </summary> /// <param name="original"></param> /// <param name="interfaces"></param> /// <param name="informalInterface"></param> void IActLikeProxyInitialize.Initialize(dynamic original, IEnumerable <Type> interfaces, IDictionary <string, Type> informalInterface) { if (((object)original) == null) { throw new ArgumentNullException("original", "Can't proxy a Null value"); } if (_init) { throw new MethodAccessException("Initialize should not be called twice!"); } _init = true; ActLikeProxyOriginal = original; var dynamicObj = ActLikeProxyOriginal as IEquivalentType; if (dynamicObj != null) { if (interfaces != null) { var aggreType = AggreType.MakeTypeAppendable(dynamicObj); foreach (var type in interfaces) { aggreType.AddType(type); } } if (informalInterface != null) { var aggreType = AggreType.MakeTypeAppendable(dynamicObj); aggreType.AddType(new PropretySpecType(informalInterface)); } } }