示例#1
0
        public NodeDataField(IFieldWrapper field, IOperaitonManager operationManager)
        {
            field.ThrowIfNullArgument(nameof(field));
            operationManager.ThrowIfNullArgument(nameof(operationManager));

            this.field            = field;
            this.operationManager = operationManager;
        }
示例#2
0
        public NodeDataBuilder(NodeData nodeData, IFieldWrapper fieldWrapper, IValueParseMap defaultValueParseMap)
        {
            nodeData.ThrowIfNullArgument(nameof(nodeData));
            fieldWrapper.ThrowIfNullArgument(nameof(fieldWrapper));
            defaultValueParseMap.ThrowIfNullArgument(nameof(defaultValueParseMap));

            this.nodeData     = nodeData;
            this.fieldWrapper = fieldWrapper;

            object[] attributes = fieldWrapper.MemberInfo.GetCustomAttributes(true);

            if (attributes.OfType <IUseParser>().Any())
            {
                IValueParser[] overrides = attributes.OfType <IUseParser>().Select(x => x.CreateParser()).ToArray();
                valueParseMap = new OverrideValueParseMap(defaultValueParseMap, overrides);
            }
            else
            {
                valueParseMap = defaultValueParseMap;
            }
        }