Маршруты ServiceStack должны иметь косые черты /
, и для согласованности в идеале HTTP-глаголы должны быть в верхнем регистре, например:
[Route("/service1/GetData", "GET")]
[Route("/service2/GetData", "GET")]
public class GetData
{
public string MessageID {get;set;}
public string Message {get;set;}
}
Если вы говорите, что это разные службы тогда они должны быть разными DTO для каждого Сервиса:
[Route("/service1/GetData", "GET")]
public class GetData1
{
public string MessageID {get;set;}
public string Message {get;set;}
}
[Route("/service2/GetData", "GET")]
public class GetData2
{
public string MessageID {get;set;}
public string Message {get;set;}
}
Неясно, что послужило бы мотивацией для объединения нескольких Сервисов в одну Запросить DTO и реализацию Сервиса, но, пожалуйста, прочтите важность DTO. и DRY против намерения . DTO определяют ваш контракт на обслуживание, более важно, чтобы они четко отражали ваш дизайн сервиса, чем любые C# проблемы, такие как DRY определения декларативных свойств.
Но если вы действительно хотите, чтобы они были реализованы в той же реализации сервиса вы можете проверить base.Request
вашей службы, чтобы определить guish маршрут, по которому была вызвана служба, например:
publi c class MyService {publi c object Any (запрос GetData) ) {if (base.Request.PathInfo.StartsWith ("/ service2 / GetData") {// ...}}}
Также доступен метод расширения Request.GetRoute()
для получения соответствующего определения маршрута Служба была вызвана с.