2008-09-26 88 views
22

下面是我想要做的:有沒有辦法讓強類型資源文件公開(而不是內部)?

我想創建一個包含我的資源文件(即UI標籤和whatnot)的庫項目。然後,我想在我的用戶界面和我的測試中使用資源庫。 (也就是說,我基本上有一個我從多個項目中參考的資源的共同點)。

不幸的是,由於StronglyTypedResourceBuilder(生成代碼爲Resources的.Net類)使資源文件默認爲內部,所以我可以'不用跳過箍環(即類似於描述here或編寫公共包裝類/函數)的方式,從另一個項目(即我的UI或測試)中引用我的強類型資源。

不幸的是,這兩種解決方案都消除了我保持強類型引用的能力。

是否有人找到了一種直接的方式來創建可從多個項目中引用的強類型.Net資源?

我寧願避免爲了實現這個目的而使用構建事件(即,做一些事情,比如用'public'替換'internal'的所有實例,但這基本上是我的倒退計劃,如果我無法找到答案..

回答

37

不知道你正在使用Visual Studio的版本,所以我會把步驟任一:

2008 VS - 當您打開在設計視圖中RESX文件,有一個選項在頂部旁邊添加資源和移除資源,稱爲訪問修飾符,它是一個下拉列表,您可以將生成的代碼從內部更改爲公共。

VS 2005 - 你沒有選擇生成類似於VS 2008的代碼。這是一個被添加的功能,因爲這個令人頭疼。儘管有解決方法。您可以使用第三方生成器,如tool,或者您可以使用AssemblyInfo.cs中的InternalsVisibleTo屬性來添加可訪問資源庫內部類的項目。

+0

完美,謝謝!我之前沒有看到InternalsVisibleTo屬性,但這正是我需要的。它讓我保持簡單,乾淨,而且我不必安裝ResXFileCodeGeneratorEx。 – 2008-09-26 18:16:01

2

Visual Studio 2008中,您可以選擇生成的資源類是否應該是內部或公開的。也有ResXFileCodeGeneratorEx,它應該做的,對Visual Studio 2005的

+0

我使用的是VS 2005,所以ResXFileGeneratorEx本來就是要走的路。感謝您的回答! – 2008-09-26 18:17:07

0

從數據集設計器和可見的屬性窗口中,都有一個「Modifier」屬性。對於您的數據集,它可能是內部的。

我不知道是否有一個設置默認所有新的數據集公開。

相關問題