Skip to content

Commit 84513a8

Browse files
author
Mike-EEE
authored
Merge ebd3e95 into 1317d44
2 parents 1317d44 + ebd3e95 commit 84513a8

File tree

3 files changed

+57
-2
lines changed

3 files changed

+57
-2
lines changed

src/ExtendedXmlSerializer/ExtensionModel/References/RootReferences.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
using System.Collections.Immutable;
21
using ExtendedXmlSerializer.ContentModel.Format;
2+
using System.Collections.Immutable;
33

44
namespace ExtendedXmlSerializer.ExtensionModel.References
55
{
@@ -14,6 +14,11 @@ public RootReferences(IReferences references, IRootInstances root)
1414
_root = root;
1515
}
1616

17-
public ImmutableArray<object> Get(IFormatWriter parameter) => _references.Get(_root.Get(parameter.Get()));
17+
public ImmutableArray<object> Get(IFormatWriter parameter)
18+
{
19+
var root = _root.Get(parameter.Get());
20+
var result = root != null ? _references.Get(root) : ImmutableArray<object>.Empty;
21+
return result;
22+
}
1823
}
1924
}

test/ExtendedXmlSerializer.Tests.ReportedIssues/Issue355Tests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using ExtendedXmlSerializer.Configuration;
22
using ExtendedXmlSerializer.Tests.ReportedIssues.Support;
3+
using JetBrains.Annotations;
34
using Xunit;
45

56
namespace ExtendedXmlSerializer.Tests.ReportedIssues
@@ -39,6 +40,7 @@ public Outer(string a, string b, string c)
3940

4041
sealed class CombinedProfile : CompositeConfigurationProfile
4142
{
43+
[UsedImplicitly]
4244
public static CombinedProfile Default { get; } = new CombinedProfile();
4345

4446
CombinedProfile() : base(OuterProfile.Default) {}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
using ExtendedXmlSerializer.Configuration;
2+
using ExtendedXmlSerializer.Tests.ReportedIssues.Support;
3+
using FluentAssertions;
4+
using Xunit;
5+
6+
namespace ExtendedXmlSerializer.Tests.ReportedIssues
7+
{
8+
public sealed class Issue358Tests
9+
{
10+
[Fact]
11+
void Verify()
12+
{
13+
var serializer = new ConfigurationContainer()
14+
.EnableParameterizedContentWithPropertyAssignments()
15+
.EnableReferences()
16+
.Create()
17+
.ForTesting();
18+
19+
var instance = new vector(new length(11), new length(13));
20+
21+
var cycled = serializer.Cycle(instance);
22+
cycled.L1.Value.Should().Be(instance.L1.Value);
23+
cycled.L2.Value.Should().Be(instance.L2.Value);
24+
}
25+
26+
class length
27+
{
28+
public length(int value)
29+
{
30+
Value = value;
31+
}
32+
33+
public int Value { get; }
34+
}
35+
36+
private struct vector
37+
{
38+
public vector(length l1, length l2)
39+
{
40+
L1 = l1;
41+
L2 = l2;
42+
}
43+
44+
public length L1 { get; }
45+
public length L2 { get; }
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)