自定义自动生成的部分类

时间:2015-09-21 07:18:47

标签: c# partial-classes

我有自动生成的部分类,如:

DROP USER [UserAccount]    
CREATE USER [UserAccount] FOR LOGIN [UserAccount]    
EXEC sp_addrolemember N'db_owner', N'UserAccount'

我使用public partial class MyEntity { ... } 文件来扩展分部类。我想避免自动生成的MyEntity消失或重命名但自定义的MyEntity.partial.cs保留并编译没有错误的情况。

如何确保我只能扩展现有的部分类?

1 个答案:

答案 0 :(得分:1)

我不确定是否存在任何良好的解决方案。

这是 a 解决方案。

让自动生成的类包含以下内容:

partial void CompileTimeCheckThatAutoGeneratedPartExists();

然后写下每个手写的扩展程序:

partial void CompileTimeCheckThatAutoGeneratedPartExists()
{
}

注意:自动生成部分中的正文是分号;,而扩展部分中的正文是空块{ }

当自动生成的部分消失,重命名或移动到另一个namespace时,将发生编译时错误。