Inheritance: TagProcessorOptions
 public DefaultServerAutocompleteProcessor(TagHelperContext context, TagHelperOutput output, AutocompleteTagHelper tag, AutocompleteOptions options)
 {
     this.context = context;
     this.output = output;
     this.tag = tag;
     this.options = options;
 }
 public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
 {
     if (DisplayProperty == null && (DisplayPropertyExplorer == null || DisplayPropertyExpressionOverride==null))
         new ArgumentNullException("display-property/display-expression-override+display-explorer");
     if (For == null && (ForPropertyExplorer == null || ForExpressionOverride == null))
         new ArgumentNullException("asp-for/for-expression-override+for-explorer");
     if (string.IsNullOrWhiteSpace(ItemsDisplayProperty)) new ArgumentNullException("items-display-property");
     if (string.IsNullOrWhiteSpace(ItemsValueProperty)) new ArgumentNullException("items-value-property");
     if (string.IsNullOrWhiteSpace(ItemsUrl)) new ArgumentNullException("items-url");
     if (string.IsNullOrWhiteSpace(UrlToken)) new ArgumentNullException("url-token");
     if (string.IsNullOrWhiteSpace(DataSetName)) new ArgumentNullException("dataset-name");
     if (MaxResults == 0) MaxResults=20;
     if (MinChars == 0) MinChars = 3;
     var currProvider = ViewContext.TagHelperProvider();
     var resolver = jsonOptions.SerializerSettings.ContractResolver as DefaultContractResolver;
     var vd = ViewContext.ViewData;
     var options = new AutocompleteOptions
     {
         Generator = generator,
         PropertyResolver = resolver != null ? resolver.GetResolvedPropertyName : new Func<string, string>(x => x),
         ForcedValueName =  currProvider.GenerateNames ? vd.GetFullHtmlFieldName(ForExpressionOverride ?? For.Name) : null,
         ForcedDisplayName = currProvider.GenerateNames ? vd.GetFullHtmlFieldName(DisplayPropertyExpressionOverride ?? DisplayProperty.Name) : null,
         NoId= !currProvider.GenerateNames || ViewContext.IsFilterRendering()
     };
     await currProvider.GetTagProcessor(TagName)(context, output, this, options, null);
 }