diff --git a/src/TypedSignalR.Client.TypeScript/RoslynExtensions.TypeCollector.cs b/src/TypedSignalR.Client.TypeScript/RoslynExtensions.TypeCollector.cs index 55c009a..f6a57f8 100644 --- a/src/TypedSignalR.Client.TypeScript/RoslynExtensions.TypeCollector.cs +++ b/src/TypedSignalR.Client.TypeScript/RoslynExtensions.TypeCollector.cs @@ -68,6 +68,7 @@ public static IReadOnlyList GetAttributeAnnotatedTypes(this Co return attributes.Any(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, attributeSymbol)); }) + .Distinct(SymbolEqualityComparer.Default) .ToArray(); return types; @@ -100,6 +101,7 @@ public static IReadOnlyList GetAttributeAnnotatedTypes( return false; }) + .Distinct(SymbolEqualityComparer.Default) .ToArray(); return types; diff --git a/tests/TypedSignalR.Client.TypeScript.Tests.Shared/IUnaryHub.cs b/tests/TypedSignalR.Client.TypeScript.Tests.Shared/IUnaryHub.cs index 87d8d98..bb8baea 100644 --- a/tests/TypedSignalR.Client.TypeScript.Tests.Shared/IUnaryHub.cs +++ b/tests/TypedSignalR.Client.TypeScript.Tests.Shared/IUnaryHub.cs @@ -43,11 +43,15 @@ public class MyResponseItem2 } [Hub] -public interface IUnaryHub +public partial interface IUnaryHub { Task Get(); Task Add(int x, int y); Task Cat(string x, string y); +} + +public partial interface IUnaryHub +{ Task Echo(UserDefinedType instance); Task EchoMyEnum(MyEnum myEnum); Task RequestArray(MyRequestItem[] array);