diff --git a/src/Directory.Build.props b/src/Directory.Build.props
new file mode 100644
index 0000000000..272318facd
--- /dev/null
+++ b/src/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+ true
+
+
+
diff --git a/src/Microsoft.AspNetCore.Blazor.Browser/Http/BrowserHttpMessageHandler.cs b/src/Microsoft.AspNetCore.Blazor.Browser/Http/BrowserHttpMessageHandler.cs
index beedb93dbb..9511a1a2c2 100644
--- a/src/Microsoft.AspNetCore.Blazor.Browser/Http/BrowserHttpMessageHandler.cs
+++ b/src/Microsoft.AspNetCore.Blazor.Browser/Http/BrowserHttpMessageHandler.cs
@@ -29,6 +29,10 @@ namespace Microsoft.AspNetCore.Blazor.Browser.Http
static IDictionary> _pendingRequests
= new Dictionary>();
+ ///
+ /// The name of a well-known property that can be added to
+ /// to control the arguments passed to the underlying JavaScript fetch API.
+ ///
public const string FetchArgs = "BrowserHttpMessageHandler.FetchArgs";
///
diff --git a/src/Microsoft.AspNetCore.Blazor.Browser/Interop/JavaScriptException.cs b/src/Microsoft.AspNetCore.Blazor.Browser/Interop/JavaScriptException.cs
index 02fcf960d7..f61434d33e 100644
--- a/src/Microsoft.AspNetCore.Blazor.Browser/Interop/JavaScriptException.cs
+++ b/src/Microsoft.AspNetCore.Blazor.Browser/Interop/JavaScriptException.cs
@@ -5,6 +5,9 @@ using System;
namespace Microsoft.AspNetCore.Blazor.Browser.Interop
{
+ ///
+ /// Represents errors that occur during an interop call from .NET to JavaScript.
+ ///
public class JavaScriptException : Exception
{
internal JavaScriptException(string message) : base(message)
diff --git a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorCodeDocItems.cs b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorCodeDocItems.cs
deleted file mode 100644
index 5f427fe491..0000000000
--- a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorCodeDocItems.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Blazor.Razor
-{
- public static class BlazorCodeDocItems
- {
- public static object ClassName = new object();
- public static object Namespace = new object();
- }
-}
diff --git a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorExtensionInitializer.cs b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorExtensionInitializer.cs
index 0e859d1943..0f9e77b7b8 100644
--- a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorExtensionInitializer.cs
+++ b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorExtensionInitializer.cs
@@ -3,16 +3,24 @@
using System;
using System.Linq;
-using System.Reflection;
using Microsoft.AspNetCore.Razor.Language;
using Microsoft.AspNetCore.Razor.Language.Extensions;
namespace Microsoft.AspNetCore.Blazor.Razor
{
+ ///
+ /// Initializes the Blazor extension.
+ ///
public class BlazorExtensionInitializer : RazorExtensionInitializer
{
+ ///
+ /// Specifies the declaration configuration.
+ ///
public static readonly RazorConfiguration DeclarationConfiguration;
+ ///
+ /// Specifies the default configuration.
+ ///
public static readonly RazorConfiguration DefaultConfiguration;
static BlazorExtensionInitializer()
@@ -29,6 +37,10 @@ namespace Microsoft.AspNetCore.Blazor.Razor
Array.Empty());
}
+ ///
+ /// Registers the Blazor extension.
+ ///
+ /// The .
public static void Register(RazorProjectEngineBuilder builder)
{
if (builder == null)
@@ -71,6 +83,10 @@ namespace Microsoft.AspNetCore.Blazor.Razor
}
}
+ ///
+ /// Initializes the Blazor extension.
+ ///
+ /// The .
public override void Initialize(RazorProjectEngineBuilder builder)
{
if (builder == null)
diff --git a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/ComponentDocumentClassifierPass.cs b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/ComponentDocumentClassifierPass.cs
index 85cc4774e5..f534f3af55 100644
--- a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/ComponentDocumentClassifierPass.cs
+++ b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/ComponentDocumentClassifierPass.cs
@@ -11,32 +11,48 @@ using Microsoft.AspNetCore.Razor.Language.Intermediate;
namespace Microsoft.AspNetCore.Blazor.Razor
{
+ ///
+ /// A that recognizes Blazor components.
+ ///
public class ComponentDocumentClassifierPass : DocumentClassifierPassBase, IRazorDocumentClassifierPass
{
+ ///
+ /// The component document kind.
+ ///
public static readonly string ComponentDocumentKind = "Blazor.Component";
private static readonly char[] PathSeparators = new char[] { '/', '\\' };
+ ///
+ /// The base namespace.
+ ///
// This is a fallback value and will only be used if we can't compute
// a reasonable namespace.
public string BaseNamespace { get; set; } = "__BlazorGenerated";
- // Set to true in the IDE so we can generated mangled class names. This is needed
- // to avoid conflicts between generated design-time code and the code in the editor.
- //
- // A better workaround for this would be to create a singlefilegenerator that overrides
- // the codegen process when a document is open, but this is more involved, so hacking
- // it for now.
+ ///
+ /// Gets or sets whether to mangle class names.
+ ///
+ /// Set to true in the IDE so we can generated mangled class names. This is needed
+ /// to avoid conflicts between generated design-time code and the code in the editor.
+ ///
+ /// A better workaround for this would be to create a singlefilegenerator that overrides
+ /// the codegen process when a document is open, but this is more involved, so hacking
+ /// it for now.
+ ///
public bool MangleClassNames { get; set; } = false;
+ ///
protected override string DocumentKind => ComponentDocumentKind;
+ ///
protected override bool IsMatch(RazorCodeDocument codeDocument, DocumentIntermediateNode documentNode)
{
// Treat everything as a component by default if Blazor is part of the configuration.
return true;
}
+ ///
protected override void OnDocumentStructureCreated(
RazorCodeDocument codeDocument,
NamespaceDeclarationIntermediateNode @namespace,
@@ -145,6 +161,7 @@ namespace Microsoft.AspNetCore.Blazor.Razor
documentNode.Target = new BlazorCodeTarget(documentNode.Options, _targetExtensions);
}
+ ///
protected override void OnInitialized()
{
base.OnInitialized();
diff --git a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/PageDirective.cs b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/PageDirective.cs
index 7fcc57eadc..2812e7a828 100644
--- a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/PageDirective.cs
+++ b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/PageDirective.cs
@@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Razor.Language.Intermediate;
namespace Microsoft.AspNetCore.Blazor.Razor
{
- public class PageDirective
+ internal class PageDirective
{
public static readonly DirectiveDescriptor Directive = DirectiveDescriptor.CreateDirective(
"page",
diff --git a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/RazorCompilerException.cs b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/RazorCompilerException.cs
index 00a7ad7546..5a981de14c 100644
--- a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/RazorCompilerException.cs
+++ b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/RazorCompilerException.cs
@@ -12,11 +12,18 @@ namespace Microsoft.AspNetCore.Blazor.Razor
///
public class RazorCompilerException : Exception
{
+ ///
+ /// Constructs an instance of .
+ ///
+ ///
public RazorCompilerException(RazorDiagnostic diagnostic)
{
Diagnostic = diagnostic;
}
+ ///
+ /// Gets the diagnostic value.
+ ///
public RazorDiagnostic Diagnostic { get; }
}
}
diff --git a/src/Microsoft.AspNetCore.Blazor.Server/BlazorAppBuilderExtensions.cs b/src/Microsoft.AspNetCore.Blazor.Server/BlazorAppBuilderExtensions.cs
index 3b75e22d7c..9c74a6176d 100644
--- a/src/Microsoft.AspNetCore.Blazor.Server/BlazorAppBuilderExtensions.cs
+++ b/src/Microsoft.AspNetCore.Blazor.Server/BlazorAppBuilderExtensions.cs
@@ -11,6 +11,9 @@ using System.Net.Mime;
namespace Microsoft.AspNetCore.Builder
{
+ ///
+ /// Provides extension methods that add Blazor-related middleware to the ASP.NET pipeline.
+ ///
public static class BlazorAppBuilderExtensions
{
///
diff --git a/src/Microsoft.AspNetCore.Blazor.Server/BlazorOptions.cs b/src/Microsoft.AspNetCore.Blazor.Server/BlazorOptions.cs
index fb207f6faf..e7cf9c88de 100644
--- a/src/Microsoft.AspNetCore.Blazor.Server/BlazorOptions.cs
+++ b/src/Microsoft.AspNetCore.Blazor.Server/BlazorOptions.cs
@@ -3,6 +3,10 @@
namespace Microsoft.AspNetCore.Builder
{
+ ///
+ /// Provides configuration options to the
+ /// middleware.
+ ///
public class BlazorOptions
{
///
diff --git a/src/Microsoft.AspNetCore.Blazor/Components/BindElementAttribute.cs b/src/Microsoft.AspNetCore.Blazor/Components/BindElementAttribute.cs
index 1a1eb22fb1..5b31829e62 100644
--- a/src/Microsoft.AspNetCore.Blazor/Components/BindElementAttribute.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Components/BindElementAttribute.cs
@@ -5,9 +5,19 @@ using System;
namespace Microsoft.AspNetCore.Blazor.Components
{
+ ///
+ /// Configures options for binding specific element types.
+ ///
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class BindElementAttribute : Attribute
{
+ ///
+ /// Constructs an instance of .
+ ///
+ /// The tag name of the element.
+ /// The suffix value. For example, set this to value for bind-value, or set this to null for bind.
+ /// The name of the value attribute to be bound.
+ /// The name of an attribute that will register an associated change event.
public BindElementAttribute(string element, string suffix, string valueAttribute, string changeAttribute)
{
if (element == null)
@@ -30,13 +40,25 @@ namespace Microsoft.AspNetCore.Blazor.Components
ChangeAttribute = changeAttribute;
}
+ ///
+ /// Gets the tag name of the element.
+ ///
public string Element { get; }
- // Set this to `value` for `bind-value` - set this to null for `bind`
+ ///
+ /// Gets the suffix value.
+ /// For example, this will be value to mean bind-value, or null to mean bind.
+ ///
public string Suffix { get; }
+ ///
+ /// Gets the name of the value attribute to be bound.
+ ///
public string ValueAttribute { get; }
+ ///
+ /// Gets the name of an attribute that will register an associated change event.
+ ///
public string ChangeAttribute { get; }
}
}
diff --git a/src/Microsoft.AspNetCore.Blazor/Components/BindInputElementAttribute.cs b/src/Microsoft.AspNetCore.Blazor/Components/BindInputElementAttribute.cs
index 01710d08db..80f3608633 100644
--- a/src/Microsoft.AspNetCore.Blazor/Components/BindInputElementAttribute.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Components/BindInputElementAttribute.cs
@@ -5,9 +5,19 @@ using System;
namespace Microsoft.AspNetCore.Blazor.Components
{
+ ///
+ /// Configures options for binding subtypes of an HTML input element.
+ ///
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class BindInputElementAttribute : Attribute
{
+ ///
+ /// Constructs an instance of .
+ ///
+ /// The value of the element's type attribute.
+ /// The suffix value.
+ /// The name of the value attribute to be bound.
+ /// The name of an attribute that will register an associated change event.
public BindInputElementAttribute(string type, string suffix, string valueAttribute, string changeAttribute)
{
if (valueAttribute == null)
@@ -25,13 +35,25 @@ namespace Microsoft.AspNetCore.Blazor.Components
ValueAttribute = valueAttribute;
ChangeAttribute = changeAttribute;
}
-
+
+ ///
+ /// Gets the value of the element's type attribute.
+ ///
public string Type { get; }
+ ///
+ /// Gets the suffix value.
+ ///
public string Suffix { get; }
+ ///
+ /// Gets the name of the value attribute to be bound.
+ ///
public string ValueAttribute { get; }
+ ///
+ /// Gets the name of an attribute that will register an associated change event.
+ ///
public string ChangeAttribute { get; }
}
}
diff --git a/src/Microsoft.AspNetCore.Blazor/Components/BlazorComponent.cs b/src/Microsoft.AspNetCore.Blazor/Components/BlazorComponent.cs
index b25ba06bb6..1d440221c8 100644
--- a/src/Microsoft.AspNetCore.Blazor/Components/BlazorComponent.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Components/BlazorComponent.cs
@@ -25,6 +25,9 @@ namespace Microsoft.AspNetCore.Blazor.Components
///
public abstract class BlazorComponent : IComponent, IHandleEvent
{
+ ///
+ /// Specifies the name of the -building method.
+ ///
public const string BuildRenderTreeMethodName = nameof(BuildRenderTree);
private readonly RenderFragment _renderFragment;
@@ -33,6 +36,9 @@ namespace Microsoft.AspNetCore.Blazor.Components
private bool _hasNeverRendered = true;
private bool _hasPendingQueuedRender;
+ ///
+ /// Constructs an instance of .
+ ///
public BlazorComponent()
{
_renderFragment = BuildRenderTree;
diff --git a/src/Microsoft.AspNetCore.Blazor/Components/EventHandlerAttribute.cs b/src/Microsoft.AspNetCore.Blazor/Components/EventHandlerAttribute.cs
index 1903603d8a..1e3960e748 100644
--- a/src/Microsoft.AspNetCore.Blazor/Components/EventHandlerAttribute.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Components/EventHandlerAttribute.cs
@@ -5,9 +5,17 @@ using System;
namespace Microsoft.AspNetCore.Blazor.Components
{
+ ///
+ /// Associates an event argument type with an event attribute name.
+ ///
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class EventHandlerAttribute : Attribute
{
+ ///
+ /// Constructs an instance of .
+ ///
+ ///
+ ///
public EventHandlerAttribute(string attributeName, Type eventArgsType)
{
if (attributeName == null)
@@ -24,8 +32,14 @@ namespace Microsoft.AspNetCore.Blazor.Components
EventArgsType = eventArgsType;
}
+ ///
+ /// Gets the attribute name.
+ ///
public string AttributeName { get; }
+ ///
+ /// Gets the event argument type.
+ ///
public Type EventArgsType { get; }
}
}
diff --git a/src/Microsoft.AspNetCore.Blazor/Components/EventHandlers.cs b/src/Microsoft.AspNetCore.Blazor/Components/EventHandlers.cs
index a3b78c9662..0cf0bb187a 100644
--- a/src/Microsoft.AspNetCore.Blazor/Components/EventHandlers.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Components/EventHandlers.cs
@@ -5,6 +5,10 @@ using System;
namespace Microsoft.AspNetCore.Blazor.Components
{
+ ///
+ /// Holds attributes to configure the mappings between event names and
+ /// event argument types.
+ ///
[EventHandler("onchange", typeof(UIChangeEventArgs))]
[EventHandler("onclick", typeof(UIMouseEventArgs))]
public static class EventHandlers
diff --git a/src/Microsoft.AspNetCore.Blazor/Components/RouteAttribute.cs b/src/Microsoft.AspNetCore.Blazor/Components/RouteAttribute.cs
index 6ce6c6f17e..313eb56082 100644
--- a/src/Microsoft.AspNetCore.Blazor/Components/RouteAttribute.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Components/RouteAttribute.cs
@@ -5,9 +5,16 @@ using System;
namespace Microsoft.AspNetCore.Blazor.Components
{
+ ///
+ /// Indicates that the associated component should match the specified route template pattern.
+ ///
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public class RouteAttribute : Attribute
{
+ ///
+ /// Constructs an instance of .
+ ///
+ /// The route template.
public RouteAttribute(string template)
{
if (template == null)
@@ -18,6 +25,9 @@ namespace Microsoft.AspNetCore.Blazor.Components
Template = template;
}
+ ///
+ /// Gets the route template.
+ ///
public string Template { get; }
}
}
diff --git a/src/Microsoft.AspNetCore.Blazor/Json/HttpClientJsonExtensions.cs b/src/Microsoft.AspNetCore.Blazor/Json/HttpClientJsonExtensions.cs
index 5b013ed8f5..28fb3a7c8a 100644
--- a/src/Microsoft.AspNetCore.Blazor/Json/HttpClientJsonExtensions.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Json/HttpClientJsonExtensions.cs
@@ -30,7 +30,6 @@ namespace Microsoft.AspNetCore.Blazor
/// Sends a POST request to the specified URI, including the specified
/// in JSON-encoded format, and parses the JSON response body to create an object of the generic type.
///
- /// A type into which the response body can be JSON-deserialized.
/// The .
/// The URI that the request will be sent to.
/// Content for the request body. This will be JSON-encoded and sent as a string.
diff --git a/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs b/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs
index b0fbe8945d..cd08dd0681 100644
--- a/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs
+++ b/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs
@@ -56,7 +56,7 @@ namespace Microsoft.AspNetCore.Blazor.RenderTree
///
/// Marks a previously appended element frame as closed. Calls to this method
- /// must be balanced with calls to .
+ /// must be balanced with calls to .
///
public void CloseElement()
{
@@ -157,7 +157,6 @@ namespace Microsoft.AspNetCore.Blazor.RenderTree
/// current element is not a component, the frame will be omitted.
///
///
- /// The .
/// An integer that represents the position of the instruction in the source code.
/// The name of the attribute.
/// The value of the attribute.
@@ -175,7 +174,6 @@ namespace Microsoft.AspNetCore.Blazor.RenderTree
/// current element is not a component, the frame will be omitted.
///
///
- /// The .
/// An integer that represents the position of the instruction in the source code.
/// The name of the attribute.
/// The value of the attribute.
@@ -271,8 +269,7 @@ namespace Microsoft.AspNetCore.Blazor.RenderTree
///
///
/// An integer that represents the position of the instruction in the source code.
- /// The name of the attribute.
- /// The value of the attribute.
+ /// A holding the name and value of the attribute.
public void AddAttribute(int sequence, RenderTreeFrame frame)
{
if (frame.FrameType != RenderTreeFrameType.Attribute)
diff --git a/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeFrame.cs b/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeFrame.cs
index 3db409e23f..2760671c65 100644
--- a/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeFrame.cs
+++ b/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeFrame.cs
@@ -225,6 +225,7 @@ namespace Microsoft.AspNetCore.Blazor.RenderTree
internal RenderTreeFrame WithRegionSubtreeLength(int regionSubtreeLength)
=> new RenderTreeFrame(Sequence, regionSubtreeLength: regionSubtreeLength);
+ ///
// Just to be nice for debugging and unit tests.
public override string ToString()
{
diff --git a/src/Microsoft.AspNetCore.Blazor/Routing/NavLink.cs b/src/Microsoft.AspNetCore.Blazor/Routing/NavLink.cs
index 9687d5870d..2cfff8ccdf 100644
--- a/src/Microsoft.AspNetCore.Blazor/Routing/NavLink.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Routing/NavLink.cs
@@ -73,6 +73,7 @@ namespace Microsoft.AspNetCore.Blazor.Routing
_renderHandle.Render(Render);
}
+ ///
public void Dispose()
{
// To avoid leaking memory, it's important to detach any event handlers in Dispose()
diff --git a/src/Microsoft.AspNetCore.Blazor/Routing/RouteTable.cs b/src/Microsoft.AspNetCore.Blazor/Routing/RouteTable.cs
index 59ba18a1ff..81f374e7f8 100644
--- a/src/Microsoft.AspNetCore.Blazor/Routing/RouteTable.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Routing/RouteTable.cs
@@ -65,6 +65,7 @@ namespace Microsoft.AspNetCore.Blazor.Routing
/// * For literals with different values (case insensitive) we choose the lexical order
/// * For parameters with different numbers of constraints, the one with more wins
/// If we get to the end of the comparison routing we've detected an ambiguous pair of routes.
+ ///
internal static int RouteComparison(RouteEntry x, RouteEntry y)
{
var xTemplate = x.Template;
diff --git a/src/Microsoft.AspNetCore.Blazor/Routing/Router.cs b/src/Microsoft.AspNetCore.Blazor/Routing/Router.cs
index cf7e7b344b..bfbfef651c 100644
--- a/src/Microsoft.AspNetCore.Blazor/Routing/Router.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Routing/Router.cs
@@ -65,6 +65,7 @@ namespace Microsoft.AspNetCore.Blazor.Routing
: str.Substring(0, firstIndex);
}
+ ///
protected virtual void Render(RenderTreeBuilder builder, Type handler, IDictionary parameters)
{
builder.OpenComponent(0, typeof(LayoutDisplay));
diff --git a/src/Microsoft.AspNetCore.Blazor/Services/IUriHelper.cs b/src/Microsoft.AspNetCore.Blazor/Services/IUriHelper.cs
index 472b7956f5..46460e16a4 100644
--- a/src/Microsoft.AspNetCore.Blazor/Services/IUriHelper.cs
+++ b/src/Microsoft.AspNetCore.Blazor/Services/IUriHelper.cs
@@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Blazor.Services
/// Converts a relative URI into an absolute one (by resolving it
/// relative to the current absolute URI).
///
- /// The relative URI.
+ /// The relative URI.
/// The absolute URI.
Uri ToAbsoluteUri(string href);
@@ -41,7 +41,7 @@ namespace Microsoft.AspNetCore.Blazor.Services
/// converts an absolute URI into one relative to the base URI prefix.
///
/// The base URI prefix (e.g., previously returned by ).
- /// An absolute URI that is within the space of the base URI prefix.
+ /// An absolute URI that is within the space of the base URI prefix.
/// A relative URI path.
string ToBaseRelativePath(string baseUriPrefix, string locationAbsolute);
diff --git a/src/Microsoft.AspNetCore.Blazor/UIEventHandler.cs b/src/Microsoft.AspNetCore.Blazor/UIEventHandler.cs
index 0b51e5fc0b..ec549b2e4a 100644
--- a/src/Microsoft.AspNetCore.Blazor/UIEventHandler.cs
+++ b/src/Microsoft.AspNetCore.Blazor/UIEventHandler.cs
@@ -1,6 +1,8 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+using Microsoft.AspNetCore.Blazor.RenderTree;
+
namespace Microsoft.AspNetCore.Blazor
{
///
diff --git a/src/anglesharp/AngleSharpBuilder/AngleSharpBuilder.csproj b/src/anglesharp/AngleSharpBuilder/AngleSharpBuilder.csproj
index 617f57fa31..43ee734717 100644
--- a/src/anglesharp/AngleSharpBuilder/AngleSharpBuilder.csproj
+++ b/src/anglesharp/AngleSharpBuilder/AngleSharpBuilder.csproj
@@ -4,6 +4,7 @@
netcoreapp2.0
Exe
false
+ false