public object Visit(JavaScriptValue value) { const string className = "className"; if (value.ValueType != JavaScriptValueType.Object || !value.HasProperty(className.ToJavaScriptPropertyId())) { return(value.ToNative()); } var type = value.GetProperty(className.ToJavaScriptPropertyId()).ToNative <string>(); switch (type) { case ViewType: return(VisitView(value)); default: throw new ArgumentOutOfRangeException(); } }
public static T ToNative <T>(this JavaScriptValue value) { return(value.ToNative() is T ? (T)value.ToNative() : default);