示例#1
0
 public void Prepare(ResourceConfigItem @default, ResourceConfigItem[] embedItems, ResourceConfigItem[] extractItems)
 {
     this.@default     = @default;
     this.extractItems = extractItems;
     this.embedItems   = embedItems;
     this.IsPrepared   = true;
 }
示例#2
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            ResourceConfigItem[] items = null;

            if (reader.TokenType == JsonToken.Boolean)
            {
                // Check if the resource setting format used is "resources": true/false
                var inject = serializer.Deserialize <bool>(reader);

                items = new ResourceConfigItem[]
                {
                    new ResourceConfigItem()
                    {
                        Inject = inject
                    }
                };
            }
            else if (reader.TokenType == JsonToken.StartArray)
            {
                // Check if the resource setting format used is "resources": [ {} ]
                items = serializer.Deserialize <ResourceConfigItem[]>(reader);
            }
            else if (reader.TokenType == JsonToken.Null || reader.TokenType == JsonToken.None)
            {
                return(existingValue);
            }
            else
            {
                throw new JsonReaderException(
                          string.Format(
                              Messages.Exceptions.ERROR_CONFIG_DESERIALIZATION_NODE,
                              "Resources. It should be either bool value false/true or an array of objects [{ ... }].")
                          );
            }

            var resourceConfig = existingValue as ResourceConfig;

            resourceConfig.Items = items;

            return(resourceConfig);
        }