From 18efefd5cfe3e28397a6a6599067b6a5d7178bad Mon Sep 17 00:00:00 2001 From: Pranav K Date: Wed, 15 Apr 2015 17:03:15 -0700 Subject: [PATCH] * Use PropertyHelper.SetValue in DefaultControllerActionArgumentBinder * Update DefaultModelMetadataProvider to use delegates exposed on PropertyHelper instance. Fixes #2355 --- .../DefaultControllerActionArgumentBinder.cs | 6 +++--- .../Metadata/DefaultModelMetadataProvider.cs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActionArgumentBinder.cs b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActionArgumentBinder.cs index 93b3b51743..ac98375c8b 100644 --- a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActionArgumentBinder.cs +++ b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActionArgumentBinder.cs @@ -71,15 +71,15 @@ namespace Microsoft.AspNet.Mvc var propertyHelpers = PropertyHelper.GetProperties(controller); foreach (var property in properties) { - var propertyHelper = propertyHelpers.First(helper => helper.Name == property.Key); + var propertyHelper = propertyHelpers.First(helper => + string.Equals(helper.Name, property.Key, StringComparison.Ordinal)); if (propertyHelper.Property == null || !propertyHelper.Property.CanWrite) { // nothing to do return; } - var setter = PropertyHelper.MakeFastPropertySetter(propertyHelper.Property); - setter(controller, property.Value); + propertyHelper.SetValue(controller, property.Value); } } diff --git a/src/Microsoft.AspNet.Mvc.ModelBinding/Metadata/DefaultModelMetadataProvider.cs b/src/Microsoft.AspNet.Mvc.ModelBinding/Metadata/DefaultModelMetadataProvider.cs index a8bd6b021d..491ee67bb3 100644 --- a/src/Microsoft.AspNet.Mvc.ModelBinding/Metadata/DefaultModelMetadataProvider.cs +++ b/src/Microsoft.AspNet.Mvc.ModelBinding/Metadata/DefaultModelMetadataProvider.cs @@ -121,14 +121,14 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Metadata var propertyEntry = new DefaultMetadataDetails(propertyKey, attributes); if (propertyHelper.Property.CanRead && propertyHelper.Property.GetMethod?.IsPublic == true) { - propertyEntry.PropertyGetter = PropertyHelper.MakeFastPropertyGetter(propertyHelper.Property); + propertyEntry.PropertyGetter = propertyHelper.ValueGetter; } if (propertyHelper.Property.CanWrite && propertyHelper.Property.SetMethod?.IsPublic == true && !key.ModelType.IsValueType()) { - propertyEntry.PropertySetter = PropertyHelper.MakeFastPropertySetter(propertyHelper.Property); + propertyEntry.PropertySetter = propertyHelper.ValueSetter; } propertyEntries.Add(propertyEntry);