diff --git a/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs b/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs index d1220e9ce..cc4a50bb2 100644 --- a/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs +++ b/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs @@ -96,7 +96,7 @@ namespace Google.ProtocolBuffers { private static readonly ExtensionRegistry empty = new ExtensionRegistry( new ExtensionByNameMap(), - new ExtensionByIdMap(), + new ExtensionByIdMap(new ExtensionIntPairEqualityComparer()), true); private readonly ExtensionByNameMap extensionsByName; @@ -116,7 +116,7 @@ namespace Google.ProtocolBuffers /// public static ExtensionRegistry CreateInstance() { - return new ExtensionRegistry(new ExtensionByNameMap(), new ExtensionByIdMap(), false); + return new ExtensionRegistry(new ExtensionByNameMap(), new ExtensionByIdMap(new ExtensionIntPairEqualityComparer()), false); } public ExtensionRegistry AsReadOnly() @@ -216,5 +216,17 @@ namespace Google.ProtocolBuffers return msgType.Equals(other.msgType) && number == other.number; } } + + internal class ExtensionIntPairEqualityComparer : IEqualityComparer + { + public bool Equals(ExtensionIntPair x, ExtensionIntPair y) + { + return x.Equals(y); + } + public int GetHashCode(ExtensionIntPair obj) + { + return obj.GetHashCode(); + } + } } -} \ No newline at end of file +}