当前位置: 首页>>代码示例>>C#>>正文


C# IMvxBundle.Read方法代码示例

本文整理汇总了C#中IMvxBundle.Read方法的典型用法代码示例。如果您正苦于以下问题:C# IMvxBundle.Read方法的具体用法?C# IMvxBundle.Read怎么用?C# IMvxBundle.Read使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IMvxBundle的用法示例。


在下文中一共展示了IMvxBundle.Read方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CallBundleMethod

        public static void CallBundleMethod(this IMvxViewModel viewModel, MethodInfo methodInfo, IMvxBundle bundle)
        {
            var parameters = methodInfo.GetParameters().ToArray();
            if (parameters.Count() == 1
                && parameters[0].ParameterType == typeof(IMvxBundle))
            {
                // this method is the 'normal' interface method
                methodInfo.Invoke(viewModel, new object[] { bundle });
                return;
            }

            if (parameters.Count() == 1
                && !MvxSingletonCache.Instance.Parser.TypeSupported(parameters[0].ParameterType))
            {
                // call method using typed object
                var value = bundle.Read(parameters[0].ParameterType);
                methodInfo.Invoke(viewModel, new[] { value });
                return;
            }

            // call method using named method arguments
            var invokeWith = bundle.CreateArgumentList(parameters, viewModel.GetType().Name)
                                   .ToArray();
            methodInfo.Invoke(viewModel, invokeWith);
        }
开发者ID:MvvmCross,项目名称:MvvmCross,代码行数:25,代码来源:MvxViewModelExtensions.cs

示例2: InitFromBundle

        protected override void InitFromBundle(IMvxBundle parameters)
        {
            var nutritionTable = parameters.Read<NutritionTable>();

            Score = NutritionService.GetScore(nutritionTable);

            Balance = Mvx.Create<BalanceViewModel>();
            Balance.Update(nutritionTable);
        }
开发者ID:SamirHafez,项目名称:Nutrition,代码行数:9,代码来源:InfoViewModel.cs

示例3: InvokeMethodWithBundle

        /// <summary>
        /// Invokes a method using a bundle to find the appropriate
        /// invocation parameters.
        /// </summary>
        /// <param name="controller"></param>
        /// <param name="methodInfo"></param>
        /// <param name="bundle"></param>
        public static void InvokeMethodWithBundle(this IMvxController controller, MethodInfo methodInfo, IMvxBundle bundle)
        {
            if (bundle.Data.Count == 0)
            {
                return;
            }

            ParameterInfo[] parameterInfoArray = methodInfo.GetParameters();

            if (parameterInfoArray.Length == 1 && parameterInfoArray[0].ParameterType == typeof(IMvxBundle))
            {
                //Method accepts bundle directly as parameter.
                methodInfo.Invoke(controller, new object[]
                {
                    bundle
                });
            }
            else if (parameterInfoArray.Length == 1 &&
                !MvxSingleton<IMvxSingletonCache>.Instance.Parser.TypeSupported(parameterInfoArray[0].ParameterType))
            {
                //Single parameter is an aggregate type that the bundle can deserialize
                object obj = bundle.Read(parameterInfoArray[0].ParameterType);
                methodInfo.Invoke(controller, new[]
                {
                    obj
                });
            }
            else
            {
                //Bundle is an argument list.
                object[] parameters = bundle.CreateArgumentList(parameterInfoArray, controller.GetType().Name).ToArray();
                methodInfo.Invoke(controller, parameters);
            }
        }
开发者ID:woellij,项目名称:mvvmcross-controllers,代码行数:41,代码来源:MvxControllerExtensions.cs

示例4: InitFromBundle

        protected override void InitFromBundle(IMvxBundle parameters)
        {
            base.InitFromBundle(parameters);

            var nutritionTable = parameters.Read<NutritionTable>();

            Update(nutritionTable);
        }
开发者ID:SamirHafez,项目名称:Nutrition,代码行数:8,代码来源:BalanceViewModel.cs


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