39d85588e6
* Use fully qualified names to reduce namespace clashes. * Small code style fixes. * Make properties in ProxyData immutable. * Remove clutter by joining TrimEnd() to previous line. * Introduce Extension method to retrieve ITypeSymbol FullyQualifiedDisplayString * Fixed some code issues. * Fixed method call in BaseGenerator * Refactor metadata name
28 lines
1.2 KiB
C#
28 lines
1.2 KiB
C#
using System.Text;
|
|
using ProxyInterfaceSourceGenerator.Extensions;
|
|
|
|
namespace ProxyInterfaceSourceGenerator.FileGenerators;
|
|
|
|
internal partial class ProxyClassesGenerator
|
|
{
|
|
private string GenerateMapperConfigurationForMapster()
|
|
{
|
|
var str = new StringBuilder();
|
|
|
|
foreach (var replacedType in Context.ReplacedTypes)
|
|
{
|
|
TryFindProxyDataByTypeName(replacedType.Key, out var fullTypeName);
|
|
var classNameProxy = $"global::{fullTypeName!.NamespaceDot}{fullTypeName!.ShortMetadataName}Proxy";
|
|
|
|
var instance = $"instance{(replacedType.Key + replacedType.Value).GetDeterministicHashCodeAsString()}";
|
|
var proxy = $"proxy{(replacedType.Value + replacedType.Key).GetDeterministicHashCodeAsString()}";
|
|
|
|
str.AppendLine($" Mapster.TypeAdapterConfig<{replacedType.Key}, {replacedType.Value}>.NewConfig().ConstructUsing({instance} => new {classNameProxy}({instance}));");
|
|
str.AppendLine($" Mapster.TypeAdapterConfig<{replacedType.Value}, {replacedType.Key}>.NewConfig().MapWith({proxy} => (({classNameProxy}) {proxy})._Instance);");
|
|
|
|
str.AppendLine();
|
|
}
|
|
|
|
return str.ToString();
|
|
}
|
|
} |