我有一个代表基于 JSON 的 API 的类层次结构。有一个通用工厂,它使用 .NET 4(没有第 3 方库)调用 api 并将其反序列化为类。我试图避免必须实例化类来检索每个类唯一的只读信息。
我曾想过(直到我开始阅读this和this,...)我会将静态 URL 与基类/接口相关联,然后将其设置在派生类的构造函数中。类似的东西(这个例子不起作用):
abstract class url {
public abstract static string URL; // This is invalid syntax!
}
class b : url {
static b () { URL = "http://www.example.com/api/x/?y=1"; }
}
class c: url {
static c () { URL = "http://www.example.com/api/z"; }
}
// ... so the factory can do something like ...
b result = doJSONRequest<b>(b.URL);
这行不通。静态字段不能是抽象的,也不能在 b和c 中唯一设置,因为静态变量存储在它定义的类中(在本例中为 url)。
我怎样才能有一个与类关联的只读项,这样您就可以访问该项目(等)而无需实例化该类?