c#资源文件

本文关键字:源文件 资源 | 更新日期: 2023-09-27 18:08:11

我的资源存储在它们自己的程序集中,并且在我的web应用程序中有对该程序集的引用。我能够以两种不同的方式访问资源-通过编译常量或使用ResourceManager。

var method1 = Prototype.Localization.CustomerRecord.BillingId;

var resx = new ResourceManager(typeof (Prototype.Localization.CustomerRecord));
var method2 = resx.GetString("BillingId");

使用第一种方法似乎是显而易见的(但这通常意味着当事情变得更复杂时,它会回来咬我),那么第二种方法的优点或缺点是什么?第一种方法会给我带来问题吗?

c#资源文件

那么第二种方法的优点和缺点是什么呢?

第二种方法是resx编译器在封面下面所做的。在我看来,第二种总是更糟糕,因为你有一个字符串(然后它可能会分离,直到运行时你才知道),因为你会缺乏编译时检查和设计时支持。

第一种方法会给我带来问题吗?

不,至少不会比其他任何东西都多(因为当您在运行时第一次编译HTML页面时,您将在HTML页面中捕获错误)。

所以我可能会问:如果第一种方法更短更容易,那么还有什么理由使用第二种方法吗?我的回答是"不"(而且你可以混合使用它们,以防你需要特殊的东西)。

是的,我同意阿德里亚诺的观点,因为那些"魔术"字符串,第二名更糟糕。

第一种方法有更多的优点,包括编译时检查,因为你引用了一个类和一个属性,如果这个属性不存在,你会得到一个错误,智能感知是另一种。

另一个优点是,如果您决定放弃内置的资源管理器,您可以用您自己的名称空间等替换生成的类(资源类),使用您自己的内部逻辑。

在我看来,我会坚持第一个。