Skip to content

Commit 4d08171

Browse files
authored
Merge pull request #510 from Dragwar/dragwar/issue/457
Fix for issue #457
2 parents 6701bb7 + 7052ed0 commit 4d08171

2 files changed

Lines changed: 17 additions & 13 deletions

File tree

source/Handlebars.Test/IssueTests.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,19 @@ public void WeirdBehaviour()
623623
Assert.Equal(expected, actual1);
624624
Assert.Equal(expected, actual2);
625625
}
626-
626+
627+
// Issue: https://github.com/Handlebars-Net/Handlebars.Net/issues/457
628+
[Fact]
629+
public void StringLength()
630+
{
631+
var handlebars = Handlebars.Create();
632+
var render = handlebars.Compile("{{str.length}}");
633+
object data = new { str = "string" };
634+
635+
var actual = render(data);
636+
Assert.Equal("6", actual);
637+
}
638+
627639
// Issue: https://github.com/Handlebars-Net/Handlebars.Net/issues/470
628640
[Theory]
629641
[ClassData(typeof(EscapeExpressionGenerator))]

source/Handlebars/ObjectDescriptors/ObjectDescriptorProvider.cs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ namespace HandlebarsDotNet.ObjectDescriptors
1313
{
1414
public sealed class ObjectDescriptorProvider : IObjectDescriptorProvider
1515
{
16-
private static readonly Type StringType = typeof(string);
17-
1816
private readonly LookupSlim<Type, DeferredValue<Type, ChainSegment[]>, ReferenceEqualityComparer<Type>> _membersCache = new LookupSlim<Type, DeferredValue<Type, ChainSegment[]>, ReferenceEqualityComparer<Type>>(new ReferenceEqualityComparer<Type>());
1917
private readonly ReflectionMemberAccessor _reflectionMemberAccessor;
2018

@@ -25,17 +23,11 @@ public ObjectDescriptorProvider(IReadOnlyList<IMemberAliasProvider> aliasProvide
2523

2624
public bool TryGetDescriptor(Type type, out ObjectDescriptor value)
2725
{
28-
if (type == StringType)
29-
{
30-
value = ObjectDescriptor.Empty;
31-
return false;
32-
}
33-
3426
value = new ObjectDescriptor(
35-
type,
36-
_reflectionMemberAccessor,
37-
GetProperties,
38-
self => new ObjectIterator(self),
27+
type,
28+
_reflectionMemberAccessor,
29+
GetProperties,
30+
self => new ObjectIterator(self),
3931
dependencies: _membersCache
4032
);
4133

0 commit comments

Comments
 (0)