Skip to content

Commit 540cb65

Browse files
author
Chris
authored
Skip property if it has an IgnoreDataMember attr (#415)
* Include update to NetSerializer test
1 parent b30de86 commit 540cb65

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

LiteNetLib.Tests/NetSerializerTest.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections.Generic;
2+
using System.Runtime.Serialization;
23
using LiteNetLib.Utils;
34

45
using NUnit.Framework;
@@ -25,7 +26,8 @@ public void Init()
2526
TestArray = new [] { new SampleNetSerializable { Value = 6 }, new SampleNetSerializable { Value = 15 } },
2627
SampleClassArray = new[] { new SampleClass { Value = 6 }, new SampleClass { Value = 15 } },
2728
SampleClassList = new List<SampleClass> { new SampleClass { Value = 1 }, new SampleClass { Value = 5 }},
28-
VectorList = new List<SomeVector2> { new SomeVector2(-1,-2), new SomeVector2(700, 800) }
29+
VectorList = new List<SomeVector2> { new SomeVector2(-1,-2), new SomeVector2(700, 800) },
30+
IgnoreMe = 1337
2931
};
3032

3133
_packetProcessor = new NetPacketProcessor();
@@ -125,6 +127,8 @@ private class SamplePacket
125127
public SampleClass[] SampleClassArray { get; set; }
126128
public List<SampleClass> SampleClassList { get; set; }
127129
public List<SomeVector2> VectorList { get; set; }
130+
[IgnoreDataMember]
131+
public int IgnoreMe { get; set; }
128132
}
129133

130134
private static bool AreSame(string s1, string s2)
@@ -165,6 +169,7 @@ public void CustomPackageTest()
165169
Assert.AreEqual(_samplePacket.TestArray, readPackage.TestArray);
166170
Assert.AreEqual(_samplePacket.SomeByteArray, readPackage.SomeByteArray);
167171
Assert.AreEqual(_samplePacket.SampleClassArray, readPackage.SampleClassArray);
172+
Assert.AreEqual(0, readPackage.IgnoreMe); // expect 0 because it should be ignored
168173
CollectionAssert.AreEqual(_samplePacket.SampleClassList, readPackage.SampleClassList);
169174
CollectionAssert.AreEqual(_samplePacket.VectorList, readPackage.VectorList);
170175

LiteNetLib/Utils/NetSerializer.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Reflection;
33
using System.Collections.Generic;
44
using System.Net;
5+
using System.Runtime.Serialization;
56

67
namespace LiteNetLib.Utils
78
{
@@ -600,6 +601,9 @@ private ClassInfo<T> RegisterInternal<T>()
600601
elementType = propertyType.GetGenericArguments()[0];
601602
callType = CallType.List;
602603
}
604+
605+
if (Attribute.IsDefined(property, typeof(IgnoreDataMemberAttribute)))
606+
continue;
603607

604608
var getMethod = property.GetGetMethod();
605609
var setMethod = property.GetSetMethod();

0 commit comments

Comments
 (0)