Все ваши получатели свойств возвращают сами свойства вместо имен полей с префиксом подчеркивания.
public string TestType
{
set { _TestType = value; }
get { return (TestType); }
}
Вместо return _TestType
вы делаете return TestType
, поэтому средство получения свойств продолжает обращаться к себе снова и снова, что приводит к бесконечной рекурсии и в конечном итоге к переполнению стека вызовов.
Кроме того, возвращаемые значения не обязательно должны заключаться в квадратные скобки (если только вы не вычисляете какое-то сложное выражение, а в данном случае - нет).
Измените ваши методы получения, чтобы вместо них возвращались поля с префиксом подчеркивания (сделайте это для всех ваших свойств):
public string TestType
{
set { _TestType = value; }
get { return _TestType; }
}
Или задайте им автоматические свойства , как другие советуют, если вы используете C # 3.0.