コード例 #1
0
ファイル: ReturnCustom.cs プロジェクト: huangdonghai/titan3d
        void OnUpdateChildParamType(MethodInvokeParameterControl ctrl, CodeDomNode.VariableType newType)
        {
            // 类型改变,重新创建TemplateClass;
            var param = CSParam as ReturnCustomConstructParam;

            if (param.ShowPropertyType == ReturnCustomConstructParam.enShowPropertyType.ReturnValue)
            {
                var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(param.MethodInfo.OutParams.Count);
                foreach (var methodParam in param.MethodInfo.OutParams)
                {
                    var paramType = methodParam.ParamType.GetActualType();
                    if (Program.IsTypeValidInPropertyGridShow(paramType))
                    {
                        var infoAssist = new MethodParamInfoAssist()
                        {
                            FieldDirection = System.CodeDom.FieldDirection.Out,
                            IsParamsArray  = false,
                            ParameterType  = paramType,
                            ParamName      = methodParam.ParamName,
                        };
                        var cpInfo = Program.GetFromParamInfo(infoAssist);
                        cpInfos.Add(cpInfo);
                    }
                }
                var tempClass = mTemplateClassInstance;
                if (tempClass != null)
                {
                    var oldTempClassType = tempClass.GetType();
                    CreateTemplateClass(cpInfos);
                    foreach (var pro in mTemplateClassInstance.GetType().GetProperties())
                    {
                        var oldPro = oldTempClassType.GetProperty(pro.Name);
                        if (oldPro == null || oldPro.PropertyType != pro.PropertyType)
                        {
                            continue;
                        }

                        pro.SetValue(mTemplateClassInstance, oldPro.GetValue(tempClass));
                    }
                }
            }
        }
コード例 #2
0
 public void OnVariableTypeChanged(CodeDomNode.VariableType variableType)
 {
     OnProcessTypeChanged?.Invoke(variableType);
 }
コード例 #3
0
 partial void ChangeValueType_WPF(CodeDomNode.VariableType varType)
 {
 }