.net 不同层对特性的不同访问

.net 不同层对特性的不同访问,.net,domain-driven-design,.net,Domain Driven Design,假设您在域实体中有一个Status属性。此属性用于了解对象的系统状态,并且必须在表示层中以只读方式使用。此图层无法直接修改“状态”属性。相反,一个应用程序服务具有更改状态的特定操作 有没有一种方法可以使status属性对于表示层是只读的,但是可以由应用程序服务写入?或者我只是用一种错误的方式来建模?我正在使用.NET。最佳实践是将您的表示模型与域模型解耦。具体来说,创建一个视图模型,并将UI绑定到该模型,而不是直接绑定到域对象。视图模型可以通过将域对象传递给构造函数来初始化。例如: class

假设您在域实体中有一个Status属性。此属性用于了解对象的系统状态,并且必须在表示层中以只读方式使用。此图层无法直接修改“状态”属性。相反,一个应用程序服务具有更改状态的特定操作


有没有一种方法可以使status属性对于表示层是只读的,但是可以由应用程序服务写入?或者我只是用一种错误的方式来建模?我正在使用.NET。

最佳实践是将您的表示模型与域模型解耦。具体来说,创建一个视图模型,并将UI绑定到该模型,而不是直接绑定到域对象。视图模型可以通过将域对象传递给构造函数来初始化。例如:

class SomeEntity
{
 public string Status { get; set; }
}

class SomeEntityViewModel
{
 public SomeEntityViewModel(SomeEntity e)
 {
  this.Status = e.Status;
 }
 public string Status { get; private set; }
}
这样,应用程序服务可以更改状态,但视图不能直接更改状态