\r
public override void Write (char value) \r
{\r
- if (MaxJsonLength > 0 && (writtenChars + 1) > MaxJsonLength) {\r
- throw new InvalidOperationException ("Maximum length exceeded.");\r
- }\r
+ EnsureNotExceedLength (1);\r
realWriter.Write (value);\r
- writtenChars++;\r
}\r
\r
public override void Write (string value) \r
{\r
- if (MaxJsonLength > 0 && (writtenChars + value.Length) > MaxJsonLength) {\r
- throw new InvalidOperationException ("Maximum length exceeded.");\r
- }\r
+ EnsureNotExceedLength (value.Length);\r
realWriter.Write (value);\r
- writtenChars += value.Length;\r
+ }\r
+\r
+ void EnsureNotExceedLength (int length) {\r
+ writtenChars += length;\r
+ if (writtenChars > MaxJsonLength)\r
+ throw new InvalidOperationException ("Maximum length exceeded.");\r
}\r
\r
public override Encoding Encoding \r