private PocoElementNode(Base instance, PocoElementNode parent, IElementDefinitionSummary definition, string location, string shortPath) { Current = instance; _mySD = new Lazy <PocoComplexTypeSerializationInfo>(() => (PocoComplexTypeSerializationInfo)PocoStructureDefinitionSummaryProvider.Provide(Current.GetType())); InstanceType = determineInstanceType(Current, definition); Definition = definition ?? throw Error.ArgumentNull(nameof(definition)); ExceptionHandler = parent.ExceptionHandler; Location = location; ShortPath = shortPath; }
private PocoElementNode(object instance, PocoElementNode parent, string location, string shortPath, int arrayIndex, IElementDefinitionSummary summary) { Current = instance; InstanceType = determineInstanceType(instance, summary); Provider = parent.Provider; ExceptionHandler = parent.ExceptionHandler; Definition = summary; Location = location; ShortPath = shortPath; ArrayIndex = arrayIndex; Provider = parent.Provider; }
private PocoElementNode(ModelInspector inspector, Base instance, PocoElementNode parent, PropertyMapping definition, string location, string shortPath) { Current = instance; _inspector = inspector; var instanceType = determineInstanceType(instance.GetType(), definition); _myClassMapping = _inspector.ImportType(instanceType); InstanceType = ((IStructureDefinitionSummary)_myClassMapping).TypeName; Definition = definition ?? throw Error.ArgumentNull(nameof(definition)); ExceptionHandler = parent.ExceptionHandler; Location = location; ShortPath = shortPath; }