internal static object ToObject()

in src/Utility/TypeExtensions.cs [68:99]


        internal static object ToObject(this TypedData data, bool convertFromJsonIfValidJson = true, bool isDurableClient = false)
        {
            if (data == null)
            {
                return null;
            }

            switch (data.DataCase)
            {
                case TypedData.DataOneofCase.Json:
                    return ConvertFromJson(data.Json, returnCaseInsensitiveHashtable: isDurableClient);
                case TypedData.DataOneofCase.Bytes:
                    return data.Bytes.ToByteArray();
                case TypedData.DataOneofCase.Double:
                    return data.Double;
                case TypedData.DataOneofCase.Http:
                    return data.Http.ToHttpRequestContext();
                case TypedData.DataOneofCase.Int:
                    return data.Int;
                case TypedData.DataOneofCase.Stream:
                    return data.Stream.ToByteArray();
                case TypedData.DataOneofCase.String:
                    string str = data.String;
                    return convertFromJsonIfValidJson && IsValidJson(str)
                                ? ConvertFromJson(str, returnCaseInsensitiveHashtable: isDurableClient)
                                : str;
                case TypedData.DataOneofCase.None:
                    return null;
                default:
                    return new InvalidOperationException("DataCase was not set.");
            }
        }