Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,9 @@ public IMemberSerializer Get(IMember parameter)

IMemberSerializer Create(IMemberSerializer serializer, Type owner)
{
var item = CollectionItemTypeLocator.Default.Get(serializer.Profile.MemberType);
var item = serializer.Profile.MemberType == typeof(string)
? null // strings should not be serialized as a collection of char
: CollectionItemTypeLocator.Default.Get(serializer.Profile.MemberType);
var itemType = _member.Get(owner)
.Item1;
var member = (IMemberSerializer)new MemberSerializer(serializer, _converters.Get(itemType));
Expand Down
18 changes: 16 additions & 2 deletions test/ExtendedXmlSerializer.Tests.ReportedIssues/Issue192Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,11 @@ void Verify()
serializer.Cycle(second)
.Should().BeEquivalentTo(second);

var group = new Group2 {Type = GroupType.Large};
var third = new SubjectWithMembers2 { Item = 123, Message = "Message", Time = DateTimeOffset.Now };
serializer.Cycle(third)
.Should().BeEquivalentTo(third);

var group = new Group2 {Type = GroupType.Large};
serializer.Cycle(group)
.Should().BeEquivalentTo(group);

Expand Down Expand Up @@ -78,7 +82,17 @@ public class SubjectWithMembers
public DateTimeOffset Time { [UsedImplicitly] get; set; }
}

public class Group2
public class SubjectWithMembers2
{
[XmlText]
public string Message { [UsedImplicitly] get; set; }

public int Item { get; set; }

public DateTimeOffset Time { [UsedImplicitly] get; set; }
}

public class Group2
{
[XmlText(Type = typeof(GroupType))] public GroupType Type = GroupType.Small;
}
Expand Down