示例#1
0
        private void AddOverriddenOrImplementedMethodSignature([NotNull] IDynamicallyGeneratedMethodData dynamicallyGeneratedMethodData,
                                                               MethodInfo methodInfo)
        {
            var parameterInfos = methodInfo.GetParameters();

            var parametersData = new List <IMethodParameterInfo>(parameterInfos.Length);

            foreach (var parameterInfo in parameterInfos)
            {
                var methodType = MethodParameterType.Normal;

                if (parameterInfo.IsOut)
                {
                    methodType = MethodParameterType.Output;
                }
                else if (parameterInfo.IsRetval)
                {
                    methodType = MethodParameterType.Reference;
                }

                parametersData.Add(new MethodParameterInfo(parameterInfo.ParameterType, parameterInfo.Name, methodType));
            }

            AddMethodSignature(dynamicallyGeneratedMethodData, parametersData);
        }
    private void AddDatabaseStatement([NotNull] IDynamicallyGeneratedMethodData methodData, [NotNull] string operationDescriptionText,
                                      [NotNull] string entityVarName)
    {
        methodData.AddCodeLine($"var loggedMessage=new {typeof(StringBuilder).FullName}();");
        methodData.AddCodeLine($"loggedMessage.Append(\"{operationDescriptionText}:[\");");

        for (var i = 0; i < _columnsMetadata.Count; i++)
        {
            var columnMetadata = _columnsMetadata[i];

            if (i > 0)
            {
                methodData.AddCodeLine("loggedMessage.Append(',');");
            }

            methodData.AddCodeLine($"loggedMessage.Append(\"{columnMetadata.ColumnName}=\"+{entityVarName}.{columnMetadata.PropertyInfo.Name});");
        }

        methodData.AddCodeLine("loggedMessage.Append(\"]\");");

        methodData.AddCodeLine("LogHelper.Context.Log.Info(loggedMessage.ToString());");
    }