C# Custom KeyValueElement and ValueElement Structures