Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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#_Sqlite_Portable Class Library - Fatal编程技术网

C# 类可以通过代码删除吗

C# 类可以通过代码删除吗,c#,sqlite,portable-class-library,C#,Sqlite,Portable Class Library,我有一个疑问,是否有任何合理的(这里需要一点点盐)机制从我的代码库中“删除”一个类。 我并不是想删除一个.cs文件,我只是想“清空”一个类 我正在寻找一些类似于“取消声明”类定义的东西 这个稍微奇怪的请求想法的原因是我有一个带有一些共享实体的PCL。这些实体由SQLite使用,在PCL库中,我定义了SQLite[PrimaryKeyAttribute]属性,以便标记实体PKs 在我的消费库中,我安装了用于Windows运行时的SQLite和用于类似linq的包装器的“SQLite net”。正是

我有一个疑问,是否有任何合理的(这里需要一点点盐)机制从我的代码库中“删除”一个类。 我并不是想删除一个.cs文件,我只是想“清空”一个类

我正在寻找一些类似于“取消声明”类定义的东西

这个稍微奇怪的请求想法的原因是我有一个带有一些共享实体的PCL。这些实体由SQLite使用,在PCL库中,我定义了SQLite
[PrimaryKeyAttribute]
属性,以便标记实体PKs

在我的消费库中,我安装了用于Windows运行时的SQLite和用于类似linq的包装器的“SQLite net”。正是在这个包装器中定义了
[PrimaryKeyAttribute]

我希望做的是在PCL库中定义
[PrimaryKeyAttribute]
类,如下所示:

namespace SQLite
{
    [AttributeUsage(AttributeTargets.Property)]
    public class PrimaryKeyAttribute : Attribute
    {
    }
}
但问题是它被消费库中相同的定义覆盖了。如果我从消费库中的定义中注释掉属性,事情会很顺利,但是一旦我(或其他人)更新sqlite net包,我们就会遇到大量问题,因为数据访问将失败


我想我正在寻找某种形式的“不编译”标志,我可以将其应用于不同文件中的代码。对此有什么想法吗?

PCL代表什么?顺便说一句:尽管有很长的解释,但仍不清楚您试图解决的原始问题是什么。很抱歉,PCL是一个可移植类库(我们在windows应用商店应用程序和web应用程序之间共享类)。最初的问题是,在此共享程序集中,需要使用PrimaryKeyAttribute修饰实体类,但直到使用程序集时才定义该类。因此,如果不在PCL中定义属性,我将无法使用该属性。如果我在PCL中定义它,它将在消费库中有效地重新定义。仍然不清楚。为什么在消费库中定义此属性?它不是应该由SQLite定义吗?是的,SQLite包含在消费库中,而消费库就是它定义的地方。不幸的是,SQLite不能包含在PCL中。但这意味着您的问题不是类的“重新定义”。这不会发生,因为类仍然位于两个不同的程序集中,因此是不同的。您的问题是您正在使用一个SQLite未知的类。