public async Task Invoke(HttpContext context)
        {
            var data             = context.GetRouteData();
            var grainRouteValues = new GrainRouteValues(data);
            var grainType        = _grainTypeProvider.GetGrainType(grainRouteValues.GrainInterface);
            var grain            = _grainReferenceProvider.GetGrainReference(grainType, grainRouteValues.GrainId);
            var result           = await _grainInvoker.Invoke(grainType, grain, grainRouteValues, context);

            context.Response.StatusCode  = 200;
            context.Response.ContentType = "application/json";
            using (var writer = new StreamWriter(context.Response.Body))
            {
                _serializer.Serialize(writer, result);
                await writer.FlushAsync();
            }
        }
 private Type GetGrainType(string typename)
 {
     return(_grainTypeProvider.GetGrainType(typename));
 }
Ejemplo n.º 3
0
 public Type GetGrainType(string typename)
 {
     return(_cache.GetOrAdd(typename, typename1 => _inner.GetGrainType(typename1)));
 }