Пример #1
0
        public object Print(object instance, Dictionary <object, int> visited, IndentHelperBase indents, string fieldName, DragonMLSettings settings)
        {
            var hmlNameTag = fieldName == null ? "" : $" hml:name=\"{fieldName}\"";

            try {
                // ReSharper disable once InvertIf
                if (!TargetMap.TryGetValue(instance.GetType(), out var target))
                {
                    target = instance.GetType().GenericTypeArguments.First().Name;
                    TargetMap[instance.GetType()] = target;
                }
                var hmlIdTag = string.Empty;
                if (!visited.ContainsKey(instance))
                {
                    visited[instance] = visited.Count;
                }
                if (settings.UseRefId)
                {
                    hmlIdTag = $" hml:id=\"{visited[instance]}\"";
                }

                return($"{indents}<tank:ref{hmlIdTag}{hmlNameTag} GUID=\"{instance}\" Target=\"{target}\"/>\n");
            } catch {
                return(null);
            }
        }
Пример #2
0
 protected bool Equals(IndentHelperBase other) => TabSize == other.TabSize && TabCharacter == other.TabCharacter;
Пример #3
0
        public object Print(object instance, IReadOnlyDictionary <Type, ISerializer> custom, HashSet <object> visited, IndentHelperBase indent, string fieldName)
        {
            var hmlNameTag = fieldName == null ? "" : $" hml:name=\"{fieldName}\"";

            try {
                // ReSharper disable once InvertIf
                if (!TargetMap.TryGetValue(instance.GetType(), out var target))
                {
                    target = instance.GetType().GenericTypeArguments.First().Name;
                    TargetMap[instance.GetType()] = target;
                }
                return($"{indent}<tank:ref hml:id=\"{instance.GetHashCode()}\"{hmlNameTag} GUID=\"{instance}\" Target=\"{target}\"/>\n");
            } catch {
                return(null);
            }
        }
Пример #4
0
 public object?Print(object?instance, Dictionary <object, int> visited, IndentHelperBase indent, string?name, DragonMLSettings settings)
 {
     return(instance?.ToString());
 }
Пример #5
0
 public object?Print(object?instance,
                     Dictionary <object, int> visited,
                     IndentHelperBase indent,
                     string?name,
                     DragonMarkupSettings settings) =>
 instance?.ToString();