Changed main GW2 Item class to have private setters. Bit of a weird one as it can only be populated through a web call which returns JSON which then need to be serialized into an object. As I want the object to have private setters as it shouldn't ever have fields changed I opted to create a private class within GW2Item which had all the same properties but with public setters meaning I could deserialize into this and then clone the fields into the actual GW2Items properties using a simple method.