CodeAttribute2.Value 속성
코드 특성의 데이터를 설정하거나 가져옵니다.
네임스페이스: EnvDTE80
어셈블리: EnvDTE80(EnvDTE80.dll)
구문
‘선언
Property Value As String
Get
Set
string Value { get; set; }
property String^ Value {
String^ get ();
void set (String^ value);
}
abstract Value : string with get, set
function get Value () : String
function set Value (value : String)
속성 값
형식: System.String
코드 특성의 데이터를 나타내는 문자열 값입니다.
구현
설명
특성이 name(someval, 2) 형식을 가지면 해당 값은 someval, 2가 됩니다.
참고
코드 특성 인수 값을 할당한 후에는 Visual Studio에서 이 값이 메모리에 유지되지 않습니다. 따라서 코드 특성 인수를 나중에 업데이트하면 이 값이 유효하지 않을 수도 있습니다. 즉, 나중에 인수에 액세스하면 E_FAIL이 반환되거나 전혀 다른 값이 반환될 수 있습니다. 그러나 요소의 자식에 영향을 주는 작업에서는 이 문제가 발생하지 않습니다.
이와 같이 동작이 명확하지 않으므로 인수의 값을 변경하려면 먼저 해당 값을 검색해야 합니다. 예를 들어, myAttrArg.Value = """a first value"""에서와 같이 코드에 코드 특성 인수를 설정한 경우 myAttrArg = myAttr.Arguments.Item("first value")에서와 같이 이를 업데이트하기 전에 명시적으로 참조한 다음 myAttrArg.Value = """a second value"""에서와 같이 새 값을 할당해야 합니다. 이렇게 하면 인수를 올바르게 변경할 수 있습니다.
또한 클래스, 구조체, 함수, 특성, 대리자 등의 코드 모델 요소를 특정한 방식으로 편집한 후에는 요소의 값이 명확하지 않을 수 있습니다. 즉, 요소의 값이 항상 같다고 할 수 없습니다. 자세한 내용은 코드 모델을 사용하여 코드 검색(Visual Basic)의 "코드 모델 요소 값이 변경될 수 있음" 단원을 참조하십시오.
예제
다음 예제에서는 현재 클래스에 새 네임스페이스와 특성을 만들고 특성의 일부 속성을 나열합니다.
Sub ValueExample(ByVal dte As DTE2)
' Before running this example, open a code document from a project
' and place the insertion point inside a class definition.
Try
' Retrieve the CodeClass at the insertion point.
Dim sel As TextSelection = _
CType(dte.ActiveDocument.Selection, TextSelection)
Dim cls As CodeClass = CType(sel.ActivePoint.CodeElement( _
vsCMElement.vsCMElementClass), CodeClass)
' Enumerate the CodeClass's attributes.
Dim attrs As String = ""
Dim attr As CodeAttribute
For Each attr In cls.Attributes
attrs &= attr.Name & "(" & attr.Value & ")" & vbCrLf
Next
MsgBox(cls.Name & " has the following attributes:" & _
vbCrLf & vbCrLf & attrs)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
public void ValueExample(DTE2 dte)
{
// Before running this example, open a code document from a project
// and place the insertion point inside a class definition.
try
{
// Retrieve the CodeClass at the insertion point.
TextSelection sel =
(TextSelection)dte.ActiveDocument.Selection;
CodeClass cls = (CodeClass)sel.ActivePoint.get_CodeElement(
vsCMElement.vsCMElementClass);
// Enumerate the CodeClass's attributes.
string attrs = "";
foreach (CodeAttribute attr in cls.Attributes)
{
attrs += attr.Name + "(" + attr.Value + ")" +
Environment.NewLine;
}
MessageBox.Show(cls.Name + " has the following attributes:" +
Environment.NewLine + Environment.NewLine + attrs);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
.NET Framework 보안
- 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.