public override System.CodeDom.CodeExpression GCode_CodeDom_GetValue(CodeGenerateSystem.Base.LinkControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { var linkOI = GetLinkObjInfo(mResultMethod); if (linkOI.HasLink) { int i = 0; for (; i < linkOI.LinkInfos.Count; i++) { var linkInfo = linkOI.LinkInfos[i]; if (mbFromObject) { if (linkInfo.m_linkToObjectInfo == linkOI) { break; } } else { if (linkInfo.m_linkFromObjectInfo == linkOI) { break; } } } return(linkOI.GetLinkObject(i, mbFromObject).GCode_CodeDom_GetValue(linkOI.GetLinkElement(i, mbFromObject), context)); } return(null); }
public override Type GCode_GetType(CodeGenerateSystem.Base.LinkControl element) { var linkOI = GetLinkObjInfo(mResultMethod); if (linkOI.HasLink) { int i = 0; for (; i < linkOI.LinkInfos.Count; i++) { var linkInfo = linkOI.LinkInfos[i]; if (mbFromObject) { if (linkInfo.m_linkToObjectInfo == linkOI) { break; } } else { if (linkInfo.m_linkFromObjectInfo == linkOI) { break; } } } return(linkOI.GetLinkObject(i, mbFromObject).GCode_GetType(linkOI.GetLinkElement(i, mbFromObject))); } else if (!mIsGenericType) { return(ParamType); } return(base.GCode_GetType(element)); }
public override CodeExpression GCode_CodeDom_GetValue(CodeGenerateSystem.Base.LinkControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { RefreshValueFromTemplateClass2PropertyInfoList(); if (element == mCtrlreturnLink) { var info = GetLinkObjInfo(mCtrlparamLink); string value = "CSUtility.Data.DataTemplateManager<"; value += mParamType.FullName + ", " + mReturnType.FullName + ">.Instance"; System.CodeDom.CodeMethodReferenceExpression methodRef = new System.CodeDom.CodeMethodReferenceExpression(); methodRef.TargetObject = new System.CodeDom.CodeSnippetExpression(value); methodRef.MethodName = "GetDataTemplate"; CodeExpression[] exps = new CodeExpression[1]; if (info.HasLink) { var ep = info.GetLinkObject(0, true).GCode_CodeDom_GetValue(info.GetLinkElement(0, true), context); exps[0] = ep; } else { foreach (var proInfo in mCustomPropertyInfos) { if (proInfo.PropertyName == "Id") { exps[0] = new CodePrimitiveExpression(proInfo.CurrentValue); break; } } } return(new System.CodeDom.CodeMethodInvokeExpression(methodRef, exps)); } return(base.GCode_CodeDom_GetValue(element, context)); }
public override CodeExpression GCode_CodeDom_GetValue(CodeGenerateSystem.Base.LinkControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { if (mMethodInfo == null) { return(base.GCode_CodeDom_GetValue(element, context)); } return(base.GCode_CodeDom_GetValue(element, context)); }
public override string GCode_GetValueType(CodeGenerateSystem.Base.LinkControl element) { var linkOI = GetLinkObjInfo(mResultMethod); if (linkOI.HasLink) { int i = 0; for (; i < linkOI.LinkInfos.Count; i++) { var linkInfo = linkOI.LinkInfos[i]; if (linkInfo.m_linkFromObjectInfo == linkOI) { break; } } return(linkOI.GetLinkObject(i, false).GCode_GetValueType(linkOI.GetLinkElement(i, false))); } //////else if (!mIsGenericType) //////{ ////// return ParamType?.FullName; //////} return(base.GCode_GetValueType(element)); }
public override void GCode_CodeDom_GenerateCode(System.CodeDom.CodeTypeDeclaration codeClass, System.CodeDom.CodeStatementCollection codeStatementCollection, CodeGenerateSystem.Base.LinkControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { var linkOI = GetLinkObjInfo(mParamsMethod); if (linkOI.HasLink) { int i = 0; for (; i < linkOI.LinkInfos.Count; i++) { var linkInfo = linkOI.LinkInfos[i]; if (linkInfo.m_linkFromObjectInfo == linkOI) { break; } } if (!linkOI.GetLinkObject(i, false).IsOnlyReturnValue) { linkOI.GetLinkObject(i, false).GCode_CodeDom_GenerateCode(codeClass, codeStatementCollection, linkOI.GetLinkElement(i, false), context); } } }
public override void GCode_CodeDom_GenerateCode(CodeTypeDeclaration codeClass, CodeStatementCollection codeStatementCollection, CodeGenerateSystem.Base.LinkControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { if (mMethodInfo == null) { base.GCode_CodeDom_GenerateCode(codeClass, codeStatementCollection, element, context); return; } // 保存节点Id和节点名字 Editor.Runner.RunnerManager.Instance.LastRunnedNodeInfo = EngineNS.Editor.Assist.GetValuedGUIDString(this.Id) + this.NodeName; Editor.Runner.RunnerManager.Instance.CurrentId = this.Id; if (MemberParentNode != null && !MemberParentNode.IsOnlyReturnValue) { var tempContext = context.Copy(); tempContext.GenerateNext = false; MemberParentNode?.GCode_CodeDom_GenerateCode(codeClass, codeStatementCollection, mHostUsefulMemberData.LinkObject?.LinkElement, tempContext); } //if (element == MethodLink_Pre) //{ // if (codeStatementCollection.Contains(mMethodInvokeStatment)) // return; // // 参数 // foreach (var paramNode in mChildNodes) // { // if (paramNode is MethodInvokeParameterControl) // { // var paramCtrl = paramNode as MethodInvokeParameterUnionControl; // paramCtrl.GCode_CodeDom_GenerateCode(codeClass, codeStatementCollection, null, context); // } // } //} }
public override Type GCode_GetType(CodeGenerateSystem.Base.LinkControl element) { return(null); }
public override string GCode_GetValueType(CodeGenerateSystem.Base.LinkControl element) { return(string.Empty); }
public override string GCode_GetValueName(CodeGenerateSystem.Base.LinkControl element) { return("MethodReturnValue_" + EngineNS.Editor.Assist.GetValuedGUIDString(Id)); }
public override void GCode_CodeDom_GenerateCode(CodeTypeDeclaration codeClass, CodeStatementCollection codeStatementCollection, CodeGenerateSystem.Base.LinkControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { if (element == null || element == mCtrlreturnLink) { var linkOI = GetLinkObjInfo(mCtrlparamLink); if (linkOI.HasLink) { if (!linkOI.GetLinkObject(0, true).IsOnlyReturnValue) { linkOI.GetLinkObject(0, true).GCode_CodeDom_GenerateCode(codeClass, codeStatementCollection, linkOI.GetLinkElement(0, true), context); } } } // if(element == Method_Pre) // { // string value = "CSUtility.Data.DataTemplateManager<"; // value += mParamType.FullName + ", " + mReturnType.FullName + ">.Instance"; // // System.CodeDom.CodeMethodReferenceExpression methodRef = new System.CodeDom.CodeMethodReferenceExpression(); // methodRef.TargetObject = new System.CodeDom.CodeSnippetExpression(value); // methodRef.MethodName = "GetDataTemplate"; // // CodeExpression[] exps = new CodeExpression[1]; // var info = GetLinkObjInfo(paramLink); // if (info.HasLink) // { // var ep = info.GetLinkObject(0, true).GCode_CodeDom_GetValue(info.GetLinkElement(0, true)); // exps[0] = ep; // } // else // { // var proInfo = mTemplateClassInstance.GetType().GetProperty("Id"); // var classValue = proInfo.GetValue(mTemplateClassInstance); // exps[0] = new CodePrimitiveExpression(classValue); // } // var exp = new System.CodeDom.CodeMethodInvokeExpression(methodRef, exps); // codeStatementCollection.Add(exp); // } }
public override string GCode_GetValueType(CodeGenerateSystem.Base.LinkControl element) { return(mReturnType.FullName); }