• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# ICommunicationContext类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中ICommunicationContext的典型用法代码示例。如果您正苦于以下问题:C# ICommunicationContext类的具体用法?C# ICommunicationContext怎么用?C# ICommunicationContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ICommunicationContext类属于命名空间,在下文中一共展示了ICommunicationContext类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: TaskEndPointHandler

 public TaskEndPointHandler(ITaskRetriever taskRetriever, ITaskListRetriever taskListRetriever, IAmACommandProcessor commandProcessor, ICommunicationContext communicationContext)
 {
     this.taskRetriever = taskRetriever;
     this.taskListRetriever = taskListRetriever;
     this.commandProcessor = commandProcessor;
     this.communicationContext = communicationContext;
 }
开发者ID:GuyHarwood,项目名称:Paramore,代码行数:7,代码来源:TaskEndPointHandler.cs


示例2: StripResponseElement

        public PipelineContinuation StripResponseElement(ICommunicationContext context)
        {
            var passedApiUrl
                = (string)context.PipelineData["ApiUrl"];

            if (string.IsNullOrEmpty(passedApiUrl))
                return PipelineContinuation.Continue;

            var xmlDocument
                = (XmlDocument)context.PipelineData["ApiXmlResponse"];

            // read and remove response header to get result
            var responseElement = xmlDocument.SelectSingleNode("/response");
            var responseStatusAttribute = responseElement.Attributes["status"];

            var innerXml = responseElement.InnerXml;
            var stringReader = new StringReader(innerXml);

            // get the type
            Type generatedType = responseStatusAttribute.InnerText == "ok"
                                 	? _typeGenerator.GenerateType(passedApiUrl)
                                 	: typeof(Error);

            var serializer = new XmlSerializer(generatedType);
            object deserialized = serializer.Deserialize(stringReader);

            if (responseStatusAttribute.InnerText == "ok")
                context.OperationResult = new OperationResult.OK(deserialized);
            else
                context.OperationResult = new OperationResult.BadRequest { ResponseResource = deserialized };

            return PipelineContinuation.Continue;
        }
开发者ID:gregsochanik,项目名称:sevendigital-api-proxy,代码行数:33,代码来源:StripLegacyResponse.cs


示例3: ResolveCodec

    ICodec ResolveCodec(ICommunicationContext context)
    {
      var codecInstance = context.Response.Entity.Codec;
      if (codecInstance != null)
      {
        Log.WriteDebug("Codec instance with type {0} has already been defined.",
          codecInstance.GetType().Name);
      }
      else
      {
        context.Response.Entity.Codec =
          codecInstance =
            DependencyManager.GetService(context.PipelineData.ResponseCodec.CodecType) as ICodec;
      }
      if (codecInstance == null)
        throw new CodecNotFoundException(
          $"Codec {context.PipelineData.ResponseCodec.CodecType} couldn't be initialized.");

      Log.WriteDebug("Codec {0} selected.", codecInstance.GetType().Name);

      if (context.PipelineData.ResponseCodec?.Configuration != null)
        codecInstance.Configuration = context.PipelineData.ResponseCodec.Configuration;

      return codecInstance;
    }
开发者ID:openrasta,项目名称:openrasta-core,代码行数:25,代码来源:ResponseEntityWriterContributor.cs


示例4: SetupCommunicationContext

 public void SetupCommunicationContext(ICommunicationContext context)
 {
   Log.WriteDebug("Adding communication context data");
   Resolver.AddDependencyInstance<ICommunicationContext>(context, DependencyLifetime.PerRequest);
   Resolver.AddDependencyInstance<IRequest>(context.Request, DependencyLifetime.PerRequest);
   Resolver.AddDependencyInstance<IResponse>(context.Response, DependencyLifetime.PerRequest);
 }
开发者ID:openrasta,项目名称:openrasta-core,代码行数:7,代码来源:HostManager.cs


示例5: WriteResponseBuffered

    async Task<PipelineContinuation> WriteResponseBuffered(ICommunicationContext context)
    {
      if (context.Response.Entity.Instance == null)
      {
        Log.WriteDebug("There was no response entity, not rendering.");
        await SendEmptyResponse(context);
        return PipelineContinuation.Continue;
      }

      var codecInstance = ResolveCodec(context);
      var writer = CreateWriter(codecInstance);
      using (Log.Operation(this, "Generating response entity."))
      {
        await writer(
          context.Response.Entity.Instance,
          context.Response.Entity,
          context.Request.CodecParameters.ToArray());
        await PadErrorMessageForIE(context);

        if (context.Response.Entity.Stream.CanSeek)
          context.Response.Entity.ContentLength = context.Response.Entity.Stream.Length;
      }

      return PipelineContinuation.Continue;
    }
开发者ID:openrasta,项目名称:openrasta-core,代码行数:25,代码来源:ResponseEntityWriterContributor.cs


示例6: GenerateEtag

        static string GenerateEtag(ICommunicationContext context, string partialEtag)
        {
            // we should only include components for the headers present in the Vary header
            // can't do it now as Vary is not set by OR, bug to fix in 2.1

            return Etag.StrongEtag(partialEtag);
        }
开发者ID:shekelator,项目名称:openrasta-caching,代码行数:7,代码来源:EntityEtagContributor.cs


示例7: ProcessDecorators

        public PipelineContinuation ProcessDecorators(ICommunicationContext context)
        {
            Uri currentUri = context.Request.Uri;
            IList<DecoratorPointer> decorators = CreateDecorators();

            /* Whenever we execute the decorators, each decorator gets a say in matching a url.
             * Whenever a decorator fails, it is ignored.
             * Whenever a decorator succeeds, it is marked as such so that its Apply() method gets called
             * Whenever a decorator that succeeded has changed the url, we reprocess all the decorators that failed before with the new url.
             * */
            for (int i = 0; i < decorators.Count; i++)
            {
                DecoratorPointer decorator = decorators[i];
                Uri processedUri;
                if (!decorator.Successful
                    && decorator.Decorator.Parse(currentUri, out processedUri))
                {
                    decorator.Successful = true;
                    if (currentUri != processedUri && processedUri != null)
                    {
                        currentUri = processedUri;
                        i = -1;
                        continue;
                    }
                }
            }
            foreach (var decorator in decorators)
            {
                if (decorator.Successful)
                    decorator.Decorator.Apply();
            }

            context.Request.Uri = currentUri;
            return PipelineContinuation.Continue;
        }
开发者ID:dhootha,项目名称:openrasta-core,代码行数:35,代码来源:UriDecoratorsContributor.cs


示例8: PageHandler

 public PageHandler(IPageRepository pageRepository, ICommunicationContext context, IUriResolver uriResolver, IMarkdown markdown)
 {
     this.pageRepository = pageRepository;
     this.context = context;
     this.uriResolver = uriResolver;
     this.markdown = markdown;
 }
开发者ID:gshutler,项目名称:OpenRasta.Wiki,代码行数:7,代码来源:PageHandler.cs


示例9: InitializeContainer

        private PipelineContinuation InitializeContainer(ICommunicationContext arg)
        {
            var container = new TinyIoCAdapter(new TinyIoCContainer());
            //HACK! For now dependencies may need to be in both containers to allow resolution
            container.Register<IHandleRequests<AddTaskCommand>, AddTaskCommandHandler>().AsMultiInstance();
            container.Register<ITaskListRetriever, TaskListRetriever>().AsMultiInstance();
            container.Register<ITasksDAO, TasksDAO>().AsMultiInstance();
            var logger = LogManager.GetLogger("TaskList");
            container.Register<ILog, ILog>(logger);
            container.Register<IAmARequestContextFactory, InMemoryRequestContextFactory>().AsMultiInstance();
            MessageStoreFactory.InstallRavenDbMessageStore(container);
            container.Register<IAmAMessageStore<Message>, RavenMessageStore>().AsSingleton();
            container.Register<IAmAMessagingGateway, RMQMessagingGateway>().AsSingleton();
            container.Register<Policy>(CommandProcessor.RETRYPOLICY, GetRetryPolicy());
            container.Register<Policy>(CommandProcessor.CIRCUITBREAKER, GetCircuitBreakerPolicy());

            var commandProcessor = new CommandProcessorFactory(container).Create();
            container.Register<IAmACommandProcessor, IAmACommandProcessor>(commandProcessor);

            resolver.AddDependencyInstance<IAdaptAnInversionOfControlContainer>(container, DependencyLifetime.Singleton);
            resolver.AddDependencyInstance<IAmARequestContextFactory>(new InMemoryRequestContextFactory(), DependencyLifetime.PerRequest);
            resolver.AddDependencyInstance<IAmACommandProcessor>(commandProcessor, DependencyLifetime.Singleton);
            resolver.AddDependency<ITaskRetriever, TaskRetriever>(DependencyLifetime.Singleton);
            resolver.AddDependency<ITaskListRetriever, TaskListRetriever>(DependencyLifetime.Singleton);


            return PipelineContinuation.Continue;
        }
开发者ID:JontyMC,项目名称:Paramore,代码行数:28,代码来源:DependencyPipelineContributor.cs


示例10: OnExecute

            protected override void OnExecute(ICommunicationContext context)
            {
                context.Request.Entity.Errors.AddRange(this.Errors);
                context.Response.Entity.Errors.AddRange(context.Request.Entity.Errors);

                base.OnExecute(context);
            }
开发者ID:endjin,项目名称:openrasta-stable,代码行数:7,代码来源:OperationResult.cs


示例11: FindResponseCodec

        public PipelineContinuation FindResponseCodec(ICommunicationContext context)
        {
            if (context.Response.Entity.Instance == null || context.PipelineData.ResponseCodec != null)
            {
                LogNoResponseEntity();
                return PipelineContinuation.Continue;
            }

            string acceptHeader = context.Request.Headers[HEADER_ACCEPT];

            IEnumerable<MediaType> acceptedContentTypes =
                MediaType.Parse(string.IsNullOrEmpty(acceptHeader) ? "*/*" : acceptHeader);
            IType responseEntityType = _typeSystem.FromInstance(context.Response.Entity.Instance);

            IEnumerable<CodecRegistration> sortedCodecs = _codecs.FindMediaTypeWriter(responseEntityType,
                                                                                      acceptedContentTypes);
            int codecsCount = sortedCodecs.Count();
            CodecRegistration negotiatedCodec = sortedCodecs.FirstOrDefault();

            if (negotiatedCodec != null)
            {
                LogCodecSelected(responseEntityType, negotiatedCodec, codecsCount);
                context.Response.Entity.ContentType = negotiatedCodec.MediaType.WithoutQuality();
                context.PipelineData.ResponseCodec = negotiatedCodec;
            }
            else
            {
                context.OperationResult = ResponseEntityHasNoCodec(acceptHeader, responseEntityType);
                return PipelineContinuation.RenderNow;
            }
            return PipelineContinuation.Continue;
        }
开发者ID:brainmurphy,项目名称:openrasta-core,代码行数:32,代码来源:ResponseEntityCodecResolverContributor.cs


示例12: ProcessRequest

        public override void ProcessRequest(ICommunicationContext ctx)
        {
            var postDataListID = GetDataListID(ctx);
            if(postDataListID != null)
            {
                new WebPostRequestHandler().ProcessRequest(ctx);
                return;
            }

            var serviceName = GetServiceName(ctx);
            var workspaceID = GetWorkspaceID(ctx);

            var requestTO = new WebRequestTO { ServiceName = serviceName, WebServerUrl = ctx.Request.Uri.ToString(), Dev2WebServer = String.Format("{0}://{1}", ctx.Request.Uri.Scheme, ctx.Request.Uri.Authority) };
            var data = GetPostData(ctx);

            if(!String.IsNullOrEmpty(data))
            {
                requestTO.RawRequestPayload = data;
            }
            var variables = ctx.Request.BoundVariables;
            if(variables != null)
            {
                foreach(string key in variables)
                {
                    requestTO.Variables.Add(key, variables[key]);
                }
            }
            // Execute in its own thread to give proper context ;)
            Thread.CurrentPrincipal = ctx.Request.User;

            var responseWriter = CreateForm(requestTO, serviceName, workspaceID, ctx.FetchHeaders());
            ctx.Send(responseWriter);
        }
开发者ID:ndubul,项目名称:Chillas,代码行数:33,代码来源:WebGetRequestHandler.cs


示例13: PostExecution

        PipelineContinuation PostExecution(ICommunicationContext context)
        {
            if (context.OperationResult.ResponseResource == null)
                return PipelineContinuation.Continue;

            var registration = _config.ResourceRegistrations.SingleOrDefault(_ => _.ResourceKey == context.PipelineData.ResourceKey);
            if (registration == null || registration.Properties.ContainsKey(Keys.LAST_MODIFIED) == false)
                return PipelineContinuation.Continue;
            var now = ServerClock.UtcNow();
            var mapper = (Func<object, DateTimeOffset?>)registration.Properties[Keys.LAST_MODIFIED];
            var lastModified = mapper(context.OperationResult.ResponseResource);

            if (lastModified > now)
                lastModified = now;
            var ifModifiedSinceHeader = context.Request.Headers["if-modified-since"];
            if (NoIncompatiblePreconditions(context) &&
                ifModifiedSinceHeader != null)
            {
                DateTimeOffset modifiedSince;
                var validIfModifiedSince = DateTimeOffset.TryParse(
                    ifModifiedSinceHeader,
                    out modifiedSince);
                if (!validIfModifiedSince)
                    _log.WriteWarning("Invalid If-Modified-Since value, not RFC1123 compliant: {0}", ifModifiedSinceHeader);
                else if (lastModified <= modifiedSince)
                    context.PipelineData[Keys.REWRITE_TO_304] = true;
            }

            if (lastModified != null)
                WriteLastModifiedHeader(context, lastModified);
            return PipelineContinuation.Continue;
        }
开发者ID:shekelator,项目名称:openrasta-caching,代码行数:32,代码来源:LastModifiedContributor.cs


示例14: ExecuteBefore

        public PipelineContinuation ExecuteBefore(ICommunicationContext context)
        {
            if ((this.InRoles == null || this.InRoles.Length == 0) && (this.Users == null || this.Users.Length == 0))
            {
                return PipelineContinuation.Continue;
            }

            if (this.ExecuteBefore(context) == PipelineContinuation.Continue)
            {
                if (this.InRoles != null)
                {
                    if (this.InRoles.Any(role => context.User.IsInRole(role)))
                    {
                        return PipelineContinuation.Continue;
                    }
                }

                if (this.Users != null)
                {
                    if (this.Users.Any(user => context.User.Identity.Name == user))
                    {
                        return PipelineContinuation.Continue;
                    }
                }
            }

            context.OperationResult = new OperationResult.Unauthorized();
            
            return PipelineContinuation.RenderNow;
        }
开发者ID:endjin,项目名称:openrasta-stable,代码行数:30,代码来源:PrincipalAuthorizationAttribute.cs


示例15: ExecuteBefore

 public override PipelineContinuation ExecuteBefore(ICommunicationContext context)
 {
     if ((InRoles == null || InRoles.Length == 0) && (Users == null || Users.Length == 0))
         return PipelineContinuation.Continue;
     if (base.ExecuteBefore(context) == PipelineContinuation.Continue)
     {
         try
         {
             if (InRoles != null)
                 foreach (string role in InRoles)
                     if (context.User.IsInRole(role))
                         return PipelineContinuation.Continue;
             if (Users != null)
                 foreach (string user in Users)
                     if (context.User.Identity.Name == user)
                         return PipelineContinuation.Continue;
         }
         catch
         {
             // todo: decide where to log this error.
         }
     }
     context.OperationResult = new OperationResult.Unauthorized();
     return PipelineContinuation.RenderNow;
 }
开发者ID:rokite,项目名称:openrasta-stable,代码行数:25,代码来源:PrincipalAuthorizationAttribute.cs


示例16: ProcessRequest

        public override void ProcessRequest(ICommunicationContext ctx)
        {
            var serviceName = GetServiceName(ctx);
            var instanceId = GetInstanceID(ctx);
            var bookmark = GetBookmark(ctx);
            var postDataListID = GetDataListID(ctx);
            var workspaceID = GetWorkspaceID(ctx);

            var requestTO = new WebRequestTO();
            var xml = GetPostData(ctx, postDataListID);

            if(!String.IsNullOrEmpty(xml))
            {
                requestTO.RawRequestPayload = xml;
            }

            requestTO.ServiceName = serviceName;
            requestTO.InstanceID = instanceId;
            requestTO.Bookmark = bookmark;
            requestTO.WebServerUrl = ctx.Request.Uri.ToString();
            requestTO.Dev2WebServer = String.Format("{0}://{1}", ctx.Request.Uri.Scheme, ctx.Request.Uri.Authority);


            // Execute in its own thread to give proper context ;)
            Thread.CurrentPrincipal = ctx.Request.User;

            var responseWriter = CreateForm(requestTO, serviceName, workspaceID, ctx.FetchHeaders(), PublicFormats, ctx.Request.User);
            ctx.Send(responseWriter);

        }
开发者ID:NatashaSchutte,项目名称:Warewolf-ESB,代码行数:30,代码来源:WebPostRequestHandler.cs


示例17: WebFormsDefaultHandler

 public WebFormsDefaultHandler(ICommunicationContext context, ITypeSystem typeSystem, IDependencyResolver resolver)
 {
     _context = context;
     _typeSystem = typeSystem;
     _resolver = resolver;
     _pageType = typeSystem.FromClr<Page>();
 }
开发者ID:endjin,项目名称:openrasta-stable,代码行数:7,代码来源:WebFormsDefaultHandler.cs


示例18: ResolveResource

        private PipelineContinuation ResolveResource(ICommunicationContext context)
        {
            if (context.PipelineData.SelectedResource == null)
            {
                var uriToMath = context.GetRequestUriRelativeToRoot();
                var uriMatch = this.uriRepository.Match(uriToMath);
                
                if (uriMatch != null)
                {
                    context.PipelineData.SelectedResource = uriMatch;
                    context.PipelineData.ResourceKey = uriMatch.ResourceKey;
                    context.Request.UriName = uriMatch.UriName;
                }
                else
                {
                    context.OperationResult = this.CreateNotFound(context);
                    
                    return PipelineContinuation.RenderNow;
                }
            }
            else
            {
                this.Log.WriteInfo(
                    "Not resolving any resource as a resource with key {0} has already been selected.".With(
                        context.PipelineData.SelectedResource.ResourceKey));
            }

            return PipelineContinuation.Continue;
        }
开发者ID:endjin,项目名称:openrasta-stable,代码行数:29,代码来源:ResourceTypeResolverContributor.cs


示例19: BuildIssueQueryTemplate

    public static Control BuildIssueQueryTemplate(this IMasonBuilderContext masonContext, ICommunicationContext communicationContext)
    {
      string issueQueryUrl = communicationContext.ApplicationBaseUri.AbsoluteUri + "/" + UrlPaths.IssueQuery;
      Control issueQueryTemplate = masonContext.NewLinkTemplate(RelTypes.IssueQuery, issueQueryUrl, "Search for issues", "This is a simple search that do not check attachments.");
      if (!masonContext.PreferMinimalResponse)
      {
        issueQueryTemplate.schema = new
        {
          properties = new
          {
            text = new
            {
              description = "Substring search for text in title and description",
              type = "string"
            },
            severity = new
            {
              description = "Issue severity (exact value, 1..5)",
              type = "string"
            },
            pid = new
            {
              description = "Project ID",
              type = "string"
            }
          }
        };
        // FIXME - schema
        //issueQueryTemplate.AddHrefTemplateParameter(new HrefTemplateParameter("text", description: "Substring search for text in title and description"));
        //issueQueryTemplate.AddHrefTemplateParameter(new HrefTemplateParameter("severity", description: "Issue severity (exact value, 1..5)"));
        //issueQueryTemplate.AddHrefTemplateParameter(new HrefTemplateParameter("pid", description: "Project ID"));
      }

      return issueQueryTemplate;
    }
开发者ID:paulswartz,项目名称:Mason,代码行数:35,代码来源:IssueHelpers.cs


示例20: GZipReponseEntity

        void GZipReponseEntity(ICommunicationContext context)
        {
            var compressedStream = new GZippedStream(context.Response.Entity.Stream);
            context.Response.Entity.Stream = compressedStream;

            context.Response.Headers.Add("Content-Encoding", "gzip");
            context.Response.Headers.Add("Vary", "Accept-Encoding");
        }
开发者ID:Huddle,项目名称:openrasta-stable,代码行数:8,代码来源:ResponseContentEncodingContributor.cs



注:本文中的ICommunicationContext类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# ICommunity类代码示例发布时间:2022-05-24
下一篇:
C# ICommsSerial类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap