Exemple #1
0
        public string GetAssignTemplate(Assign assignType, IAssignContext context)
        {
            switch (assignType)
            {
            case Assign.AsNoCast:
                return($"{{1}}.{context.DestMemberName} = {{0}}.{context.SrcMemberName};");

            case Assign.AsExplicitCast:
                return($"{{1}}.{context.DestMemberName} = ({context.DestTypeFullName}) {{0}}.{context.SrcMemberName};");

            case Assign.AsToStringCall:
                return($"{{1}}.{context.DestMemberName} = {{0}}.{context.SrcMemberName}.ToString();");

            case Assign.AsStringToValueTypeConvert:
                return($"{{1}}.{context.DestMemberName} = ({context.DestTypeFullName}) Convert.ChangeType({{0}}.{context.SrcMemberName}, typeof({context.DestTypeFullName}));");

            default: throw new NotSupportedException(assignType.ToString());
            }
        }
Exemple #2
0
        public void AppendAssignment(Assign assignType, IAssignContext context)
        {
            string template = GetAssignTemplate(assignType, context);

            AppendLine(template);
        }