private static TResult ResolveSerializerAndRun <TResult>(string secretsJson, Type secretsType, Func <IScriptSecretSerializer, JObject, TResult> func) { JObject secrets = JObject.Parse(secretsJson); IScriptSecretSerializer serializer = GetSerializer(secrets, secretsType); return(func(serializer, secrets)); }
private static IScriptSecretSerializer GetSerializer(JObject secrets, Type secretType) { IScriptSecretSerializer serializer = _secretFormatters.FirstOrDefault(s => s.CanSerialize(secrets, secretType)); if (serializer == null) { throw new FormatException("Invalid secrets file format."); } return(serializer); }