1つのサービスでリクエストを処理し、それを他のリクエストに変換し、そのリクエストを内部サービスに渡し、応答を取得して、外部サービス応答に戻す必要があります。いくつかのコードはそれをよりよく説明するかもしれません。これは私がしたことです:
public class InviteUserService : Service, IPost<Invitee>
{
public RegistrationService RegistrationService { get; set; }
public object Post(Invitee invitee)
{
// Do other invitation related work that is part of my domain.
var registration = invitee.TranslateTo<Registration>();
registration.UserName = invitee.EmailAddress;
registration.Email = invitee.EmailAddress;
// It previously threw a null ref exception until I added this.
RegistrationService.RequestContext = RequestContext;
var response = RegistrationService.Post(registration);
if (response is RegistrationResponse)
{
var inviteeResponse = response.TranslateTo<InviteeResponse>();
return inviteeResponse;
}
// Else it is probably an error and just return it directly to be handled by SS.
return response;
}
}
上記のコードのコメントが示すように、私が渡す前に、RequestContext
それはNullReferenceExceptionで失敗していました。これで動作するようになりましたが、ServiceStackの動作に関して、上流の戦いに向かっているのではないかと思います。それは私に今後さらに問題を引き起こすでしょうか?
両方のサービスが私の管理下にある場合は、登録コードを別の共有依存関係に移動するだけです。ただしRegistrationService
、ServiceStackに組み込まれており、これ以外の方法で呼び出すことはできないようです。私が何かを逃していない限り?