다음을 통해 공유


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 구현 및 사용