1) [KnownType(typeof(ThrowAway))]
: атрибут KnownType, имеющий тот же тип, что и сам класс, является бесполезным и принудительно применяется.Вам это не нужно.
2) Параметр типа объекта почти никогда не должен использоваться по разным причинам.На самом деле вам нужен [KnownType (typeof (ThrowAway))] для класса object
, но, очевидно, вы не являетесь владельцем этого класса.Так что получите лучшую абстракцию.
3) Как сказал Динеш, вам нужно [DataMember]
для public Int32 MyValue { get; set; }
.
4) Если вы используете генерацию кода путем добавления ссылки на сервис, ваши методыоставайтесь на сервере и никогда не оставляйте его.Но если вы распространяете свои сущности (ThrowAway) своему клиенту, то они будут, и это хорошая практика.Помните!Отдельный интерфейс, сущности и реализация каждого в отдельную DLL.