Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自定义自动生成的分部类_C#_Partial Classes - Fatal编程技术网

C# 自定义自动生成的分部类

C# 自定义自动生成的分部类,c#,partial-classes,C#,Partial Classes,我已经自动生成了部分类,如: public partial class MyEntity { ... } 我使用MyEntity.partial.cs文件来扩展分部类。我希望避免自动生成的MyEntity消失或重命名,但自定义的MyEntity.partial.cs保留并编译时没有错误的情况 如何确保只能扩展现有的分部类 我不确定有什么好的解决办法 这里有一个解决方案 让自动生成的类包含以下内容: partial void CompileTimeCheckThatAutoGeneratedPa

我已经自动生成了部分类,如:

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


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

我不确定有什么好的解决办法

这里有一个解决方案

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

partial void CompileTimeCheckThatAutoGeneratedPartExists();
然后在每个手写分机上写下:

partial void CompileTimeCheckThatAutoGeneratedPartExists()
{
}
注意:自动生成零件中的主体是分号
而扩展部分中的主体是空块
{}


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

为什么不在生成类时证明这一点?还是我误解了你的问题?你能说得更具体一点吗?文件名是一样的吗?@BendEg:我正在从XSD模式生成类。在生成时,如何证明没有其他手写的部分类?@Nikita:没有,通常所有生成的类都在一个文件中,因为更容易进行源代码控制