2013-01-24 28 views
2

我一直在使用C#中使用resgen.exe在我的Windows窗體應用程序已經生成StronglyTypedClass文件和.NET 4.5如何使構造StringResources到公衆StronglyTypedClass文件中使用與C#resgen.exe和.NET 4.5

產生根據語法,我可以使StringResources類成爲公共的,但構造函數仍然是內部的。

resgen inputFilename [outputFilename] /str:language[,namespace,[classname[,filename]]] [/publicClass] 

當我把這種說法[/ publicClass],它只是使班級爲公開,但構造還是內部。

internal StringResources() {} 

請建議,如何做到這一點。

+0

你如何構造函數被公開? –

+0

這是我的問題實際上,默認情況下,此工具ResGen.exe可以使該類公開,但構造函數保持內部。 我的一個隊友已經去世,以某種方式公開。 我試過MSDN的幫助,但doens't似乎幫助很大。 基本上,我想在生成cs文件的時候這樣做,但如果沒有辦法做到這一點,可以通過在生成文件後再次讀取文件來完成,並將此內部公開。然而,我認爲這不是一個好的和適當的解決方案。 – Indigo

回答

1

很可能你的隊友希望公開該構造函數,因爲他想使用xaml中的資源。

只需在同一個程序集中創建一個類,它繼承資源文件並公開構造函數,然後使用此類。

public class ResourcesProxy : Properties.Resources 
{ 
    /// <summary> 
    /// resolves the problem of internal constructor in resources.designer.cs 
    /// in conjunction with xaml usage 
    /// </summary> 
    public ResourcesProxy() : base() 
    { 
    } 
} 
+0

這應該被標記爲答案。解決方案非常簡單,但我一直試圖記住每次都會公開構造函數,但是當我的記憶拒絕記住時,卻沒有這樣做。感謝您的解決方案。在我的情況下,我通過XAML作爲靜態資源訪問資源類,當構造函數在內部時,它無法工作。 –

+1

@adabyron - 我試過,但雖然基類屬性確實出現在「創建數據綁定」對話框中,但我在運行時遇到綁定路徑錯誤:http://stackoverflow.com/questions/20278545/binding-path-error-with-類 - 即-繼承-從-C-尖銳 - 窗口電話-8-共享 –