Skip to content

Commit bced0cd

Browse files
committed
Fix serialization exception when run on .NET Core 2.1
- Build using 2.1.300 SDK in Travis CI.
1 parent 86a1979 commit bced0cd

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
language: csharp
22
mono: latest
3-
dotnet: 2.1.2
3+
dotnet: 2.1.300
44
sudo: required
55
services:
66
- mysql

src/NHibernate/Transform/AliasToBeanResultTransformer.cs

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
using System.Collections.Generic;
44
using System.Linq;
55
using System.Reflection;
6+
using System.Runtime.Serialization;
7+
using NHibernate.Util;
68

79
namespace NHibernate.Transform
810
{
@@ -250,8 +252,13 @@ private struct RankedMember<T> where T : MemberInfo
250252
}
251253

252254
[Serializable]
253-
private struct NamedMember<T> where T : MemberInfo
255+
private struct NamedMember<T> : ISerializable
256+
where T : MemberInfo
254257
{
258+
public string Name;
259+
public T Member;
260+
public T[] AmbiguousMembers;
261+
255262
public NamedMember(string name, T[] members)
256263
{
257264
if (members == null)
@@ -269,9 +276,19 @@ public NamedMember(string name, T[] members)
269276
}
270277
}
271278

272-
public string Name;
273-
public T Member;
274-
public T[] AmbiguousMembers;
279+
private NamedMember(SerializationInfo info, StreamingContext context)
280+
{
281+
Name = info.GetString("Name");
282+
Member = info.GetValue<T>("Member");
283+
AmbiguousMembers = info.GetValueArray<T>("AmbiguousMembers");
284+
}
285+
286+
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
287+
{
288+
info.AddValue("Name", Name);
289+
info.AddValue("Member", Member);
290+
info.AddValueArray("AmbiguousMembers", AmbiguousMembers);
291+
}
275292
}
276293

277294
#endregion

0 commit comments

Comments
 (0)