internal BaseClassIfc Duplicate(BaseClassIfc entity, bool downStream) { if (mDuplicateMapping.ContainsKey(entity.mIndex)) return mDatabase[mDuplicateMapping[entity.mIndex]]; Type type = Type.GetType("GeometryGym.Ifc." + entity.GetType().Name, false, true); if (type != null) { Type[] types = new Type[] { typeof(DatabaseIfc), type, typeof(bool) }; ConstructorInfo constructor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, types, null); if (constructor != null) return constructor.Invoke(new object[] { this.mDatabase, entity, downStream }) as BaseClassIfc; types = new Type[] { typeof(DatabaseIfc), type }; constructor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, types, null); if (constructor != null) return constructor.Invoke(new object[] { this.mDatabase, entity }) as BaseClassIfc; } return null; }
internal BaseClassIfc Duplicate(BaseClassIfc entity) { return Duplicate(entity, true); }