したがって、私の問題は、以下の URL で説明されている apphost.ResolveService の呼び出しを中心に展開しています: Calling a ServiceStack service from Razor
私は_Layout.cshtmlにいます
そして明らかに、次のコードは完全に機能しますが、上記のURLの回答で示唆されているように、それはちょっとばかげています
SMSGateway.Services.EntityCollectionResponse response =
new ServiceStack.ServiceClient.Web.JsonServiceClient(
"http://localhost:1337/")
.Get<SMSGateway.Services.EntityCollectionResponse>(
"/entities");
それで、エンティティのリストが得られます:)しかし、最適ではありません...だから、正しい方法でそれを行う私の試みはここにあります
var response = ConsoleAppHost.Instance
.ResolveService<SMSGateway.Services.EntityService>(
HttpContext.Current).Get(
new SMSGateway.Services.EntitiesRequest());
// SMSGateway.Services.EntityCollectionResponse response =
// base.Get<SMSGateway.Services.EntityService>().Get(
// new SMSGateway.Services.EntitiesRequest());
foreach (var entity in response.Result)
{
<li>
<a href="@entity.MetaLink.Href">
@Html.TitleCase(entity.Name) entities
</a>
</li>
}
さて、私が得るエラーは次のとおりです:
エラー CS0122: 保護レベルが原因で ConsoleAppHost にアクセスできません....
これは期待されていますか?これが_Layout.cshtmlファイルでこれを呼び出すことが許可されていない可能性がある場合ではないかどうかを考えていましたか?
さらに読むと、InternalVisibleTo Testing Internal Methods in .NET 2.0という記事にたどり着きました。
私は非常に興味深いと思いました:Pしかし、葉巻はありません:)