2010-11-25 6 views
120

VS에서 리소스 파일을 편집 할 때마다 해당 코드가 다시 생성되고 클래스 액세스 한정자가 internal로 설정됩니다.
resx를 편집 할 때마다 Ctrl-F -> ReplaceAll에 고통이 있습니다. 이 속성을 공개로 설정할 수 있도록 속성/설정이 있습니까?Visual Studio - Resx 파일의 기본 'internal'to 'public'

internal class MyResource { 

    internal static global::System.Resources.ResourceManager ResourceManager {...} 

} 

나는 모든 시간 public로 모든 internal이 필요합니다.

+0

@jvanrhyn : 솔루션의 다른 프로젝트에서 자원 관리자에 액세스해야하기 때문에. –

답변

240

ResXFileCodeGenerator 대신 PublicResXFileCodeGenerator를 사용하십시오.

공용 액세스하려는 Resx 파일의 속성 창에서 사용자 지정 도구 속성으로 설정하여이 작업을 수행 할 수 있습니다.

편집 : 다른 방법으로는 Visual Studio에서 resx 파일을 열 때 액세스 한정자를 public으로 설정할 수 있습니다. 액세스 수정 자 드롭 다운 상자는 양식 맨 위에 있습니다.

+11

(좋은 답변이지만 단지 일부 메모,'ResXFileCodeGenerator'뿐만 아니라'GlobalResourceProxyGenerator' 일 수도 있고 "Access Modofier"드롭 다운이 종종 비활성화되어 있음을주의하십시오) –

+3

@Marc : Thx, 나는 매일 새로운 것을 배웁니다 :) +1. – Anton

+0

@Anton : 고마워, 내 경우 엔 효과가있다. 또한 드롭 다운에서 액세스 수정자를 변경하면 해당 도구가 변경되는 것으로 나타났습니다. –

-5

아마도 가장 쉬운 방법은 Public ctor를 사용하여 파생 클래스를 만드는 것입니다.

생성 된 클래스 :

[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 
    internal Strings() { 
    } 

파생 클래스 :

public class PublicStrings : Strings 
{ 
    /// <summary> 
    /// Public localization Strings. 
    /// </summary> 
    public PublicStrings() 
    { 

    } 
} 
+9

이것은 불가능합니다. 오류가 발생합니다. CS0060 일치하지 않는 액세스 가능성 : 기본 클래스 'Strings'에 'PublicStrings'클래스보다 액세스하기가 쉽지 않습니다. –

1

1) 리소스 파일 (resource.resx) => 속성에 마우스 오른쪽 버튼을 클릭합니다.

2) 사용자 지정 도구 => PublicResXFileCodeGenerator로 변경 완료.

관련 문제