所以我的问题围绕着调用 apphost.ResolveService 在下面的 url 中描述: Calling a ServiceStack service from Razor
我在我的 _Layout.cshtml
显然,以下代码可以完美运行,但正如上述网址中的答案所建议的那样,这有点愚蠢
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 在 .NET 2.0 中测试内部方法
我觉得很有趣 :P 但没有雪茄 :)