Я бы определил класс DTO в этом случае:
public class Foo
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
, а затем использовал AutoMapper для отображения из B
экземпляра в Foo
.Наконец, я бы JSON сериализировал экземпляр Foo
, который был возвращен AutoMapper
.Таким образом, у меня есть полный контроль над тем, что сериализуется.
Другая возможность - использовать анонимный объект:
B b = ...
string json = new JavaScriptSerializer().Serialize(new
{
b.Prop1, b.Prop2
});
или, если вы хотите переименовать эти свойства в результирующем JSON:
string json = new JavaScriptSerializer().Serialize(new
{
Foo = b.Prop1,
Bar = b.Prop2
});