Класс и объект, который вы создали на стороне сервера не существует на стороне клиента. Когда вы используете WCF, вы сериализуете экземпляр класса в данные (обычно XML, но он также может быть двоичным в зависимости от вашей привязки), отправляете его через Интернет, а затем десериализуете в экземпляр аналогичный класс на стороне клиента. Этот подобный класс обычно создается ссылкой на службу на основе WSDL службы.
Вот почему закрытые поля в вашем классе на стороне сервера не появляются в вашем классе на стороне клиента. Если вы хотите, чтобы атрибуты были доступны на стороне клиента, вам придется вручную добавить их на стороне клиента.
Как уже было сказано ... если вы управляете как сервером, так и клиентом, вы можете использовать приемы, чтобы гарантировать, что вы используете один и тот же класс с обеих сторон. Самое простое - поместить все ваши классы DataContract
в отдельную сборку и ссылаться на них как с сервера, так и с клиента. Если вы используете Service Reference для генерации прокси на стороне клиента, обязательно отметьте «Повторное использование типов в ссылочных сборках» при генерации прокси.