我有一个我正在定义的公共类,它最终将成为 API 的一部分,因此它必须具有某些公共属性。但是,我还希望某些属性是只读的,除非它们是在我自己的项目中创建的(例如,如果用户拥有我们的 API,他们可以创建一个 User 对象,但他们不能写入其 ID字段,只有当我们从数据库中提取它时才会填写)。
我的想法是让两个单独的程序集使用相同的命名空间,即“公共”DLL 和“私有”DLL。公共 DLL 中的原型将如下所示:
namespace CompanyName
{
public partial class User
{
public Id { get; }
public Name { get; set; }
}
}
并且私有 DLL 将具有以下内容:
namespace CompanyName
{
public partial class User
{
public Id { set; }
}
}
这行得通吗?如果没有,有什么更好的方法来做到这一点?