Question

Au cours du mois dernier, j'ai remarqué un comportement étrange où le mauvais service de repos est appelé avec la pile de services.

Tout semble fonctionner puis lorsque j'ajoute un nouveau service de repos, certains comment mon service de repos de travail ne fonctionne pas correctement (c'est-à-dire que le mauvais service de repos est appelé).

Je vais expliquer comment j'ai mes données de données pour les services qui peuvent expliquer pourquoi je reçois le problème.

J'ai initialement eu:

[DataContract(Name = "MyService", Namespace = "")]
[RestService("/api/v1/dvbs/{ServiceName}", "GET", "application/xml")]
public class GetServiceDto
{
    [DataMember(Name = "SessionId", Order = 1)]
    public string SessionId { get; set; }
    [DataMember(Name = "UserName", Order = 2)]
    public string UserName { get; set; }
    [DataMember(Name = "ServiceName", Order = 3)]
    public string ServiceName { get; set; }
}

Et comme je transmettais les mêmes données (sessionID, nom d'utilisateur et serviconame) dans tous mes appels, tout nouveau service a commencé comme suit:

[DataContract(Name = "MyService", Namespace = "")]
[RestService("/api/v1/dvbs/{ServiceName}/tuners", "GET", "application/xml")]
public class GetTunersDto : GetServiceDto
{
}

Comme je l'ai mentionné tout cela fonctionnait bien, mais quand j'ai ajouté un nouveau service, lorsque j'ai appelé "API / V1 / DVBS / {serviconame} Le service" API / V2 / DVBS / {ServiceName} / Tuners "serait appelé.

J'ai supprimé la relation héritée afin que j'ai:

[DataContract(Name = "MyService", Namespace = "")]
[RestService("/api/v1/dvbs/{ServiceName}/tuners", "GET", "application/xml")]
public class GetDvbConfigTunersDto
{
    [DataMember(Name = "SessionId", Order = 1)]
    public string SessionId { get; set; }
    [DataMember(Name = "UserName", Order = 2)]
    public string UserName { get; set; }
    [DataMember(Name = "ServiceName", Order = 3)]
    public string ServiceName { get; set;}
}

et ça marche bien maintenant.

Ce qui est étrange, c'est qu'il fonctionnait bien et que lorsque j'ai ajouté un nouveau service à une date ultérieure que la mauvaise cartographie engagée.

Des idées?

Était-ce utile?

La solution

Vous ne pouvez avoir que 1 demande DTO par service et une demande héritante DTOS hérite des voies d'attribut qui le rend gettunersdo hériter les mêmes itinéraires que gettoursto qui remplit les services de serveurs avec des conflits etRoutes ambiguës.

La solution consiste à utiliser l'héritage sur les DTO (surtout de demande DTOS).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top