try to fix #44

This commit is contained in:
Boshi Lian
2017-11-06 01:49:50 +08:00
parent d89293b00c
commit 8d5f4b19c2
2 changed files with 56 additions and 0 deletions

View File

@@ -1,3 +1,5 @@
using k8s.Models;
namespace k8s
{
using System;
@@ -46,6 +48,8 @@ namespace k8s
// set credentails for the kubernernet client
this.SetCredentials(config, handler);
this.InitializeHttpClient(handler, new DelegatingHandler[]{new WatcherDelegatingHandler()});
DeserializationSettings.Converters.Add(new V1Status.V1StatusObjectViewConverter());
}
private X509Certificate2 CaCert { get; set; }

View File

@@ -0,0 +1,52 @@
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace k8s.Models
{
public partial class V1Status
{
internal class V1StatusObjectViewConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
serializer.Serialize(writer, value);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
JsonSerializer serializer)
{
var obj = JToken.Load(reader);
try
{
return obj.ToObject(objectType);
}
catch (JsonException)
{
// should be an object
}
return new V1Status
{
_original = obj,
HasObject = true
};
}
public override bool CanConvert(Type objectType)
{
return typeof(V1Status) == objectType;
}
}
private JToken _original;
public bool HasObject { get; private set; }
public T ObjectView<T>()
{
return _original.ToObject<T>();
}
}
}