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

C# BindingContext类代码示例

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

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



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

示例1: ConvertArray

        private object ConvertArray(string[] items, Type destinationType, BindingContext context)
        {
            var elementType = destinationType.GetElementType();

            if (elementType == null)
            {
                return null;
            }

            var converter = context.TypeConverters.Where(c => c.CanConvertTo(elementType)).FirstOrDefault();

            if (converter == null)
            {
                return null;
            }

            var returnArray = items.Select(s => converter.Convert(s, elementType, context));

            var genericCastMethod = this.enumerableCastMethod.MakeGenericMethod(new[] { elementType });
            var generictoArrayMethod = this.enumerableToArrayMethod.MakeGenericMethod(new[] { elementType });

            var castArray = genericCastMethod.Invoke(null, new object[] { returnArray });

            return generictoArrayMethod.Invoke(null, new[] { castArray });
        }
开发者ID:nathanpalmer,项目名称:Nancy,代码行数:25,代码来源:CollectionConverter.cs


示例2: Deserialize

        /// <summary>
        /// Deserialize the request body to a model
        /// </summary>
        /// <param name="mediaRange">Content type to deserialize</param>
        /// <param name="bodyStream">Request body stream</param>
        /// <param name="context">Current context</param>
        /// <returns>Model instance</returns>
        public object Deserialize(MediaRange mediaRange, Stream bodyStream, BindingContext context)
        {
            var serializer = new JavaScriptSerializer(
                null,
                false,
                this.configuration.MaxJsonLength,
                this.configuration.MaxRecursions,
                this.configuration.RetainCasing,
                this.configuration.UseISO8601DateFormat,
                this.configuration.Converters,
                this.configuration.PrimitiveConverters);

            serializer.RegisterConverters(this.configuration.Converters, this.configuration.PrimitiveConverters);

            bodyStream.Position = 0;
            string bodyText;
            using (var bodyReader = new StreamReader(bodyStream))
            {
                bodyText = bodyReader.ReadToEnd();
            }

            var genericDeserializeMethod = this.deserializeMethod.MakeGenericMethod(context.DestinationType);

            var deserializedObject = genericDeserializeMethod.Invoke(serializer, new object[] { bodyText });

            return deserializedObject;
        }
开发者ID:afwilliams,项目名称:Nancy,代码行数:34,代码来源:JsonBodyDeserializer.cs


示例3: Convert

        /// <summary>
        /// Convert the string representation to the destination type
        /// </summary>
        /// <param name="input">Input string</param>
        /// <param name="destinationType">Destination type</param>
        /// <param name="context">Current context</param>
        /// <returns>Converted object of the destination type</returns>
        public object Convert(string input, Type destinationType, BindingContext context)
        {
            // TODO - Lots of reflection in here, should probably cache the methodinfos
            if (string.IsNullOrEmpty(input))
            {
                return null;
            }

            var items = input.Split(',');

            // Strategy, schmategy ;-)
            if (this.IsCollection(destinationType))
            {
                return this.ConvertCollection(items, destinationType, context);
            }

            if (this.IsArray(destinationType))
            {
                return this.ConvertArray(items, destinationType, context);
            }

            if (this.IsEnumerable(destinationType))
            {
                return this.ConvertEnumerable(items, destinationType, context);
            }

            return null;
        }
开发者ID:nathanpalmer,项目名称:Nancy,代码行数:35,代码来源:CollectionConverter.cs


示例4: Convert

        /// <summary>
        /// Convert the string representation to the destination type
        /// </summary>
        /// <param name="input">Input string</param>
        /// <param name="destinationType">Destination type</param>
        /// <param name="context">Current context</param>
        /// <returns>Converted object of the destination type</returns>
        public object Convert(string input, Type destinationType, BindingContext context)
        {
            if (string.IsNullOrEmpty(input))
            {
                return null;
            }

            var items = input.Split(',');

            // Strategy, schmategy ;-)
            if (destinationType.IsCollection())
            {
                return this.ConvertCollection(items, destinationType, context);
            }

            if (destinationType.IsArray())
            {
                return this.ConvertArray(items, destinationType, context);
            }

            if (destinationType.IsEnumerable())
            {
                return this.ConvertEnumerable(items, destinationType, context);
            }

            return null;
        }
开发者ID:Borzoo,项目名称:Nancy,代码行数:34,代码来源:CollectionConverter.cs


示例5: CreateInstance

 public static CheckedContext CreateInstance(
     BindingContext parentCtx,
     bool checkedNormal,
     bool checkedConstant)
 {
     return new CheckedContext(parentCtx, checkedNormal, checkedConstant);
 }
开发者ID:ChuangYang,项目名称:corefx,代码行数:7,代码来源:BindingContexts.cs


示例6: RabbitMQTransportOutputChannel

        public RabbitMQTransportOutputChannel(BindingContext context, EndpointAddress address, Uri via)
            : base(context, address, via)
        {
            _bindingElement = context.Binding.Elements.Find<RabbitMQTransportBindingElement>();

            MessageEncodingBindingElement encoderElement;

            if (_bindingElement.MessageFormat == MessageFormat.MTOM)
            {
                encoderElement = context.Binding.Elements.Find<MtomMessageEncodingBindingElement>();
            }
            else if (_bindingElement.MessageFormat == MessageFormat.NetBinary)
            {
                encoderElement = context.Binding.Elements.Find<BinaryMessageEncodingBindingElement>();
            }
            else
            {
                encoderElement = context.Binding.Elements.Find<TextMessageEncodingBindingElement>();
            }

            if (encoderElement != null)
            {
                _encoder = encoderElement.CreateMessageEncoderFactory().Encoder;
            }

            _messageProcessor = context.BindingParameters.Find<IFaultMessageProcessor>();
        }
开发者ID:parshim,项目名称:MessageBus,代码行数:27,代码来源:RabbitMQTransportOutputChannel.cs


示例7: UdpDuplexChannel

		// channel factory
		public UdpDuplexChannel (UdpChannelFactory factory, BindingContext ctx, EndpointAddress address, Uri via)
			: base (factory)
		{
			binding_element = factory.Source;
			RemoteAddress = address;
			Via = via;
		}
开发者ID:afaerber,项目名称:mono,代码行数:8,代码来源:UdpDuplexChannel.cs


示例8: BindNamed

        void BindNamed(object commando, PropertyInfo property, List<CommandLineParameter> parameters, NamedArgumentAttribute attribute, BindingContext context)
        {
            var name = attribute.Name;
            var shortHand = attribute.ShortHand;
            var parameter = parameters.Where(p => p is NamedCommandLineParameter)
                .Cast<NamedCommandLineParameter>()
                .SingleOrDefault(p => p.Name == name || p.Name == shortHand);

            var value = parameter != null
                            ? Mutate(parameter, property)
                            : attribute.Default != null
                                  ? Mutate(attribute.Default, property)
                                  : null;

            if (value == null)
            {
                context.Report.PropertiesNotBound.Add(property);

                if (!attribute.Required) return;

                throw Ex("Could not find parameter matching required parameter named {0}", name);
            }

            property.SetValue(commando, value, null);

            context.Report.PropertiesBound.Add(property);
        }
开发者ID:rebus-org,项目名称:GoCommando,代码行数:27,代码来源:Binder.cs


示例9: Deserialize

        /// <summary>
        /// Deserialize the request body to a model
        /// </summary>
        /// <param name="mediaRange">Content type to deserialize</param>
        /// <param name="bodyStream">Request body stream</param>
        /// <param name="context">Current context</param>
        /// <returns>Model instance</returns>
        public object Deserialize(MediaRange mediaRange, Stream bodyStream, BindingContext context)
        {
            if (bodyStream.CanSeek)
            {
                bodyStream.Position = 0;
            }

            var deserializedObject = ServiceStack.JsonSerializer.DeserializeFromStream(context.DestinationType, bodyStream);
            if (deserializedObject == null)
            {
                return null;
            }

            IEnumerable<BindingMemberInfo> properties;
            IEnumerable<BindingMemberInfo> fields;

            if (context.DestinationType.IsGenericType)
            {
                var genericType = context.DestinationType.GetGenericArguments().FirstOrDefault();

                properties = genericType.GetProperties(BindingFlags.Public | BindingFlags.Instance).Select(p => new BindingMemberInfo(p));
                fields = genericType.GetFields(BindingFlags.Public | BindingFlags.Instance).Select(p => new BindingMemberInfo(p));
            }
            else
            {
                properties = context.DestinationType.GetProperties(BindingFlags.Public | BindingFlags.Instance).Select(p => new BindingMemberInfo(p));
                fields = context.DestinationType.GetFields(BindingFlags.Public | BindingFlags.Instance) .Select(p => new BindingMemberInfo(p));
            }

            return properties.Concat(fields).Except(context.ValidModelBindingMembers).Any()
                ? CreateObjectWithBlacklistExcluded(context, deserializedObject)
                : deserializedObject;
        }
开发者ID:NancyFx,项目名称:Nancy.Serialization.ServiceStack,代码行数:40,代码来源:ServiceStackBodyDeserializer.cs


示例10: FillMessageEncoder

		void FillMessageEncoder (BindingContext ctx)
		{
			var mbe = (MessageEncodingBindingElement) ctx.Binding.Elements.FirstOrDefault (be => be is MessageEncodingBindingElement);
			if (mbe == null)
				mbe = new TextMessageEncodingBindingElement ();
			message_encoder = mbe.CreateMessageEncoderFactory ().Encoder;
		}
开发者ID:nickchal,项目名称:pash,代码行数:7,代码来源:UdpDuplexChannel.cs


示例11: Main

	public static void Main ()
	{
		HttpTransportBindingElement el =
			new HttpTransportBindingElement ();
		BindingContext bc = new BindingContext (
			new CustomBinding (),
			new BindingParameterCollection (),
			new Uri ("http://localhost:37564"),
			String.Empty, ListenUriMode.Explicit);
		IChannelListener<IReplyChannel> listener =
			el.BuildChannelListener<IReplyChannel> (bc);

		listener.Open ();

		IReplyChannel reply = listener.AcceptChannel ();

		reply.Open ();

		if (!reply.WaitForRequest (TimeSpan.FromSeconds (10))) {
			Console.WriteLine ("No request reached here.");
			return;
		}
		Console.WriteLine ("Receiving request ...");
		RequestContext ctx = reply.ReceiveRequest ();
		if (ctx == null)
			return;
		Console.WriteLine ("Starting reply ...");
		ctx.Reply (Message.CreateMessage (MessageVersion.Default, "Ack"));
	}
开发者ID:alesliehughes,项目名称:olive,代码行数:29,代码来源:reply.cs


示例12: MsmqIntegrationChannelListener

 internal MsmqIntegrationChannelListener(MsmqBindingElementBase bindingElement, BindingContext context, MsmqReceiveParameters receiveParameters)
     : base(bindingElement, context, receiveParameters, null)
 {
     SetSecurityTokenAuthenticator(MsmqUri.FormatNameAddressTranslator.Scheme, context);
     MsmqIntegrationReceiveParameters parameters = receiveParameters as MsmqIntegrationReceiveParameters;
     xmlSerializerList = XmlSerializer.FromTypes(parameters.TargetSerializationTypes);
 }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:7,代码来源:MsmqIntegrationChannelListener.cs


示例13: RabbitMQOutputChannelBase

 protected RabbitMQOutputChannelBase(BindingContext context, EndpointAddress address, Uri via)
     : base(context)
 {
     _address = address;
     _via = via;
     _sendMethod = Send;
 }
开发者ID:ronybot,项目名称:MessageBus,代码行数:7,代码来源:RabbitMQOutputChannelBase.cs


示例14: WindowsStreamSecurityUpgradeProvider

        public WindowsStreamSecurityUpgradeProvider(WindowsStreamSecurityBindingElement bindingElement,
            BindingContext context, bool isClient)
            : base(context.Binding)
        {
            _extractGroupsForWindowsAccounts = TransportDefaults.ExtractGroupsForWindowsAccounts;
            _protectionLevel = bindingElement.ProtectionLevel;
            _scheme = context.Binding.Scheme;
            _isClient = isClient;
            _listenUri = TransportSecurityHelpers.GetListenUri(context.ListenUriBaseAddress, context.ListenUriRelativeAddress);

            SecurityCredentialsManager credentialProvider = context.BindingParameters.Find<SecurityCredentialsManager>();

            if (credentialProvider == null)
            {
                if (isClient)
                {
                    credentialProvider = ClientCredentials.CreateDefaultCredentials();
                }
                else
                {
                    throw ExceptionHelper.PlatformNotSupported("WindowsStreamSecurityUpgradeProvider for server is not supported.");
                }
            }

            _securityTokenManager = credentialProvider.CreateSecurityTokenManager();
        }
开发者ID:shijiaxing,项目名称:wcf,代码行数:26,代码来源:WindowsStreamSecurityUpgradeProvider.cs


示例15: WindowsStreamSecurityUpgradeProvider

        public WindowsStreamSecurityUpgradeProvider(WindowsStreamSecurityBindingElement bindingElement,
            BindingContext context, bool isClient)
            : base(context.Binding)
        {
            this.extractGroupsForWindowsAccounts = TransportDefaults.ExtractGroupsForWindowsAccounts;
            this.protectionLevel = bindingElement.ProtectionLevel;
            this.scheme = context.Binding.Scheme;
            this.isClient = isClient;
            this.listenUri = TransportSecurityHelpers.GetListenUri(context.ListenUriBaseAddress, context.ListenUriRelativeAddress);

            SecurityCredentialsManager credentialProvider = context.BindingParameters.Find<SecurityCredentialsManager>();
            if (credentialProvider == null)
            {
                if (isClient)
                {
                    credentialProvider = ClientCredentials.CreateDefaultCredentials();
                }
                else
                {
                    credentialProvider = ServiceCredentials.CreateDefaultCredentials();
                }
            }


            this.securityTokenManager = credentialProvider.CreateSecurityTokenManager();
        }
开发者ID:iskiselev,项目名称:JSIL.NetFramework,代码行数:26,代码来源:WindowsStreamSecurityUpgradeProvider.cs


示例16: OnInspectorGUI

        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            Target = target as BindingContext;

            if (Target == null)
                return;

            ModeSelection();

            switch (Target.ContextMode)
            {
                case BindingContext.BindingContextMode.MonoBinding:
                    MonoSelection();
                    Target.FindModel();
                    break;

                case BindingContext.BindingContextMode.MockBinding:
                    DrawNamespaceDrop();
                    DrawTypeDrop();
                    Target.FindModel();
                    break;

                case BindingContext.BindingContextMode.PropBinding:
                    PropSelection();
                    Target.FindModel();
                    break;

                default:
                    EditorGUILayout.LabelField("Please select a binding mode.");
                    break;
            }
        }
开发者ID:Agamemjohn,项目名称:Unity3d-Databinding-Mvvm-Mvc,代码行数:34,代码来源:BindingContextEditor.cs


示例17: BindAsync

 public Task<IValueProvider> BindAsync(BindingContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     return BindAsync(context.FunctionCancellationToken, context.ValueContext);
 }
开发者ID:rafaelmtz,项目名称:azure-webjobs-sdk,代码行数:8,代码来源:CancellationTokenBinding.cs


示例18: BindAsync

 public Task<IValueProvider> BindAsync(BindingContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     return BindAccountAsync(_account, context.ValueContext);
 }
开发者ID:rafaelmtz,项目名称:azure-webjobs-sdk,代码行数:8,代码来源:CloudStorageAccountBinding.cs


示例19: ZMQReceivingChannelBase

 protected ZMQReceivingChannelBase(ChannelManagerBase channelManager, BindingContext bindingContext, Context context, Socket socket, SocketMode socketMode)
     : base(channelManager, bindingContext, socket, socketMode)
 {
     _onReceiveHandler = Receive;
     _onTryReceiveHandler = TryReceive;
     _onWaitForMessageHandler = WaitForMessage;
     _context = context;
 }
开发者ID:ronybot,项目名称:MessageBus,代码行数:8,代码来源:ZMQReceivingChannelBase.cs


示例20: MsmqChannelListenerBase

 protected MsmqChannelListenerBase(MsmqBindingElementBase bindingElement,
                                   BindingContext context,
                                   MsmqReceiveParameters receiveParameters,
                                   MessageEncoderFactory messageEncoderFactory)
     : base(bindingElement, context, messageEncoderFactory)
 {
     this.receiveParameters = receiveParameters;
 }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:8,代码来源:MsmqChannelListenerBase.cs



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C# BindingElement类代码示例发布时间:2022-05-24
下一篇:
C# BindingBuilder类代码示例发布时间: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