From 4a5e1f4a72bd61cc4d91b4b494afb6c675086ae9 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Mon, 12 Sep 2016 16:34:02 -0700 Subject: [PATCH] Use as cast instead of C-style cast for IVewContextAware helpers Fixes #5254 --- .../Internal/ViewComponentTagHelperChunkVisitor.cs | 2 +- .../Internal/ViewComponentTagHelperChunkVisitorTest.cs | 6 +++--- .../Runtime/GeneratedViewComponentTagHelperClasses.cs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.Host/Internal/ViewComponentTagHelperChunkVisitor.cs b/src/Microsoft.AspNetCore.Mvc.Razor.Host/Internal/ViewComponentTagHelperChunkVisitor.cs index d5a70d86e0..1229412237 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor.Host/Internal/ViewComponentTagHelperChunkVisitor.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor.Host/Internal/ViewComponentTagHelperChunkVisitor.cs @@ -149,7 +149,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host.Internal })) { Writer.WriteInstanceMethodInvocation( - $"((global::{_context.IViewContextAwareTypeName}){ViewComponentTagHelperVariable})", + $"({ViewComponentTagHelperVariable} as global::{_context.IViewContextAwareTypeName})?", _context.ContextualizeMethodName, new [] { ViewContextVariable }); diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Host.Test/Internal/ViewComponentTagHelperChunkVisitorTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Host.Test/Internal/ViewComponentTagHelperChunkVisitorTest.cs index 876eed2f30..ecb9993dad 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Host.Test/Internal/ViewComponentTagHelperChunkVisitorTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Host.Test/Internal/ViewComponentTagHelperChunkVisitorTest.cs @@ -50,12 +50,12 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host.Test.Internal if (!string.Equals(expectedOutput, resultOutput, StringComparison.Ordinal)) { ResourceFile.UpdateFile(assembly, path, expectedOutput, resultOutput); - expectedOutput = ResourceFile.ReadResource(assembly, path, sourceFile: true); } -#endif - +#else // Assert Assert.Equal(expectedOutput, resultOutput, ignoreLineEndingDifferences: true); +#endif + } } } diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Host.Test/TestFiles/Output/Runtime/GeneratedViewComponentTagHelperClasses.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Host.Test/TestFiles/Output/Runtime/GeneratedViewComponentTagHelperClasses.cs index 9ff6e7d227..5556074723 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Host.Test/TestFiles/Output/Runtime/GeneratedViewComponentTagHelperClasses.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Host.Test/TestFiles/Output/Runtime/GeneratedViewComponentTagHelperClasses.cs @@ -11,7 +11,7 @@ public class __Generated__FooViewComponentTagHelper : Microsoft.AspNetCore.Razor public System.String Attribute { get; set; } public override async global::System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) { - ((global::Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware)_viewComponentHelper).Contextualize(ViewContext); + (_viewComponentHelper as global::Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware)?.Contextualize(ViewContext); var viewContent = await _viewComponentHelper.InvokeAsync("Foo", new { Attribute }); output.TagName = null; output.Content.SetHtmlContent(viewContent); @@ -30,7 +30,7 @@ public class __Generated__BarViewComponentTagHelper : Microsoft.AspNetCore.Razor public System.String Attribute { get; set; } public override async global::System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) { - ((global::Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware)_viewComponentHelper).Contextualize(ViewContext); + (_viewComponentHelper as global::Microsoft.AspNetCore.Mvc.ViewFeatures.IViewContextAware)?.Contextualize(ViewContext); var viewContent = await _viewComponentHelper.InvokeAsync("Bar", new { Attribute }); output.TagName = null; output.Content.SetHtmlContent(viewContent);