예제 #1
0
        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;
        }
예제 #2
0
 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;
        }