Visual Studio-Resx 파일 기본 'internal'에서 'public'


165

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

internal class MyResource {

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

}

나는 모든 사람이 필요 internal할 수 public있는 모든 시간을.


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

답변:


334

대신에을 ResXFileCodeGenerator사용하십시오 PublicResXFileCodeGenerator.

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

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


13
(좋은 답변; 그러나 몇 가지 참고 사항; 또한 GlobalResourceProxyGenerator,뿐만 아니라 ResXFileCodeGenerator; "액세스 Modofier"드롭 다운이 종종 비활성화됨에 유의하십시오.)
Marc Gravell

@Anton : 감사합니다. 제 경우에는 효과가 있습니다. 또한 드롭 다운에서 액세스 수정자를 변경하면 해당 도구가 변경됩니다.
Robin Maben

1
@conqenator : 그렇기 때문에 동일한 결과에 도달하는 다른 방법으로 액세스 수정 자 드롭 다운 사용을 제안했습니다. :)
Anton

2
액세스 수정 자 드롭 다운이 비활성화되어 있으면 BTW 값이 아닌 경우 사용자 지정 도구 속성을 ResXFileCodeGenerator로 변경해 볼 수 있습니다. VS 2010의 MVC 프로젝트에서는 적어도 저에게 도움이됩니다.
Manuel Navarro

1
Visual Studio 2017에서 나를 선택하면 PublicResXFileCodeGenerator생성자가 아닌 Resources 클래스 만 공개합니다.
Laurent Michel

13
  1. 리소스 파일 ( resource.resx) => 속성을 마우스 오른쪽 버튼으로 클릭하십시오 .

  2. 맞춤 도구 =>로 변경PublicResXFileCodeGenerator


-7

아마도 가장 쉬운 방법은 Public ctor로 파생 클래스를 만드는 것입니까?

생성 된 클래스 :

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

파생 클래스 :

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

    }
}

13
이건 불가능 해. CS0060 오류 : 일관성없는 접근성 : 기본 클래스 'Strings'는 'PublicStrings'클래스보다 접근성이 낮습니다.
David Gardiner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.