Azure / Azure/durabletask

Support method overloading in AddTaskActivitiesFromX

Offen
#795 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C#
Sterne
1.7k
Forks
335
Ø Merge
2 T. 23 Std.
Gemergte PRs (30 T.)
6

Beschreibung

When trying to call AddTaskActivitiesFromInterface with an interface that has multiple signatures of the same mehtod name we encounter this exception:
```
Duplicate entry detected: IResourceManagerUtils.GetResourcesAsync
System.InvalidOperationException: Duplicate entry detected: IResourceManagerUtils.GetResourcesAsync
at DurableTask.Core.NameVersionObjectManager`1.Add(ObjectCreator`1 creator) in /_/src/DurableTask.Core/NameVersionObjectManager.cs:line 31
at DurableTask.Core.TaskHubWorker.AddTaskActivitiesFromInterface(Type interface, Object activities, Boolean useFullyQualifiedMethodNames) in /_/src/DurableTask.Core/TaskHubWorker.cs:line 393
```

The cause is pretty self-explanatory, since only the method names is used to describe the activity, and the other components of the method signature are ignored, a conflict is crated.
Perhaps the version could be utilized to correlate each overload with a dedicated activity? Though I'm not sure how backward-compatibility is preserved in that way

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne in src/DurableTask.Core/TaskHubWorker.cs bei AddTaskActivitiesFromInterface und untersuche NameVersionObjectManager.Add in src/DurableTask.Core/NameVersionObjectManager.cs. Reproduziere den Fehler mit einem Interface, das mehrere Signaturen für einen Methodennamen enthält, und ermittle eine abwärtskompatible Möglichkeit, Überladungen zu unterscheiden; abgeschlossen ist die Aufgabe, wenn die Registrierung nicht mehr die Ausnahme wegen eines doppelten Eintrags auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
backend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.