我有点困惑,为什么在下面将set
设置为私有。我的困惑不是专门与私有属性有关,而是在域对象的上下文中,并从用户输入([FromForm])中获取它们
public class ObjectA
{
public string Name { get; private set; }
public string Title { get; private set; }
public ObjectA(string name, string title)
{
Name = name;
Title = title;
}
}
但是实际上,当ObjectA与[FromBody]一起传递到控制器时,所有这些属性都被发送到构造函数中,从而自动破坏了private set
的目的。
我想我还没有完全理解域对象中私有集的整个概念
答案 0 :(得分:0)
设计DDD对象时这是常见规则。使对象不可变。属性值只能通过构造函数或公共方法在您的域内更改。这样可以帮助您更加专注于自己的域并避免产生副作用。
这些对象不是您提到的数据传输对象(DTO):[FromBody]