Если вы имеете в виду динамическое создание класса, то есть два варианта:
Если вы имеете в виду создание экземпляра существующего класса, начните с Activator.CreateInstance , чтобы создать экземпляр объекта, а затем посмотрите на методы Тип , такие как GetProperty , который вернет PropertyInfo , который можно вызвать GetValue и SetValue on.
Обновление: для описываемого вами сценария, возвращающего динамические данные из веб-службы, я бы рекомендовал не использовать этот подход, так как вам трудно кодировать и трудно использовать статически типизированные языки. Вместо этого, как предлагается в комментариях и в одном из других ответов, какой-то словарь, вероятно, будет лучшим вариантом.
(Обратите внимание, что когда я говорю «вернуть какой-то словарь», я говорю скорее образно, чем буквально, то есть возвращаю что-то, что концептуально совпадает со словарем, например список пар ключ-значение. Я бы не рекомендовал напрямую возвращая один (даже если вы используете WCF, который поддерживает это), потому что обычно лучше иметь полный контроль над возвращаемым вами XML.)