public DefaultSsslConverter(ObjectConversionOptions objectConversionOptions) { _objectConversionOptions = objectConversionOptions; }
public static bool TryConvertTo(ISsslConverter converter, SsslObject sssl, Type type, ObjectConversionOptions options, [NotNullWhen(true)] out object result) { var allowUnknownMember = options.HasFlag(ObjectConversionOptions.AllowUnknownMember); var allowMissingMember = options.HasFlag(ObjectConversionOptions.AllowMissingMember); result = null !; if (!(sssl is SsslRecord record)) { return(false); } if (record.Name != "" && !type.IsSealed && record.Name != type.GetFullName()) { if (type.Assembly.GetType(record.Name) is { } assemblyInnerType&& type.IsAssignableFrom(assemblyInnerType)) { type = assemblyInnerType; } if (Type.GetType(record.Name) is { } coreType&& type.IsAssignableFrom(coreType)) { type = coreType; } else if (AppDomain.CurrentDomain .GetAssemblies() .Select(x => x.GetType(record.Name)) .FirstOrDefault(x => x is { } && type.IsAssignableFrom(x)) is { } otherType&&