다음을 통해 공유


CodeElement2.RenameSymbol 메서드

개체의 선언된 이름을 변경하고 현재 프로젝트의 범위 내에서 개체에 대한 모든 코드 참조를 업데이트합니다.

네임스페이스:  EnvDTE80
어셈블리:  EnvDTE80(EnvDTE80.dll)

구문

‘선언
Sub RenameSymbol ( _
    NewName As String _
)
void RenameSymbol(
    string NewName
)
void RenameSymbol(
    String^ NewName
)
abstract RenameSymbol : 
        NewName:string -> unit 
function RenameSymbol(
    NewName : String
)

매개 변수

  • NewName
    형식: System.String
    필수적 요소로서,이름을 바꾸려는 기호의 이름입니다.

설명

현재 프로젝트 범위 내에서 이름을 하나라도 변경할 수 없으면 메서드가 오류를 반환합니다.

참고

런타임에 바인딩된 RenameSymbol 또는 ElementID는 호출할 수 없습니다. 예를 들어, DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2")입니다. 호출하기 전에 개체를 CodeElement2 인터페이스로 명시적으로 캐스팅해야 합니다.

EnvDTE80의 코드 요소(이하 Code*2 개체)는 EnvDTE의 코드 요소에서 파생됩니다. 예를 들어, CodeClass2CodeClass에서 파생되고 CodeElement2CodeElement에서 파생됩니다. Visual Studio에서는 내부적으로 두 어셈블리의 모든 코드 요소가 CodeElement2로 다시 캐스팅됩니다. 따라서, 논리적으로 볼 때 이는 마치 CodeClass2가 궁극적으로 CodeElement2에서 파생되는 것과 같습니다.

그러나 이들 두 요소는 실제로는 두 개의 개별 상속 계층 구조에 있으므로 런타임에 바인딩할 때 Code*2 개체에서 CodeElement2 메서드를 찾을 수 없습니다. EnvDTE는 근본적으로 동일하게 작동하지만 전처리기 매크로를 사용하면 인터페이스를 정의하여 상속된 메서드가 변환이 있는 관련된 모든 인터페이스에 명시적으로 정의될 수 있습니다. EnvDTE80 인터페이스는 전처리기 문을 사용하지 않는 경우에만 비슷한 상속 스키마를 사용하여 정의됩니다. 이 해결 방법은 속성이 중복되지 않으므로 보다 세련된 방법이지만 런타임에 바인딩하는 경우 속성을 호출할 수 없다는 단점이 있습니다. 이 문제를 해결하려면 호출하기 전에 개체를 CodeElement2 인터페이스로 명시적으로 캐스팅해야 합니다.

또한 클래스, 구조체, 함수, 특성, 대리자 등의 코드 모델 요소를 특정한 방식으로 편집한 후에는 요소의 값이 명확하지 않을 수 있습니다. 즉, 요소의 값이 항상 같다고 할 수 없습니다. 자세한 내용은 코드 모델을 사용하여 코드 검색(Visual Basic)의 "코드 모델 요소 값이 변경될 수 있음" 단원을 참조하십시오.

.NET Framework 보안

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

CodeElement2 인터페이스

EnvDTE80 네임스페이스

기타 리소스

방법: 자동화 개체 모델 코드의 예제 컴파일 및 실행

코드 모델을 사용하여 코드 검색(Visual Basic)

코드 모델을 사용하여 코드 검색(Visual C#)

Automation Extenders 구현 및 사용