public void loadJson(JsonObject jo) { if (!jo.ContainsKey("Type")) { throw new InvalidLoadType("Missing Type field, this is not valid json object"); } if (jo["Type"] != _MyJsonType) { throw new InvalidLoadType("JsonObject has invalid type: " + jo["Type"]); } PipeFactory <T> pipeFactory = new PipeFactory <T>(); Pipe <T> newPipe = pipeFactory.fromJson(jo); this.MyNocabName = new NocabNameable(jo["NocabName"], this); }