Metoda CodeClass2.RemoveBase —
Usuwa obiekt z listy baz.
Przestrzeń nazw: EnvDTE80
Zestaw: EnvDTE80 (w EnvDTE80.dll)
Składnia
'Deklaracja
Sub RemoveBase ( _
Element As Object _
)
void RemoveBase(
Object Element
)
void RemoveBase(
Object^ Element
)
abstract RemoveBase :
Element:Object -> unit
function RemoveBase(
Element : Object
)
Parametry
Element
Typ: ObjectWymagany.A CodeElement lub nazwa jednej w kolekcji.
Uwagi
Element usunięty mogą być albo CodeElement obiekt, który znajduje się w kolekcji lub nazwa unikatowa elementu w kolekcji.
[!UWAGA]
Wartości elementów modelu kodu, takich jak klasy, strukturach, funkcje, atrybuty, delegatów i tak dalej mogą być deterministyczny po dokonaniu niektórych rodzajów modyfikacji, co oznacza, że ich wartości nie mogą być powoływane do zawsze pozostają takie same.Aby uzyskać więcej informacji, zobacz sekcję wartości elementu modelu kod można zmienić w Odnajdowanie kodu za pomocą modelu kodu (Visual Basic).
Przykłady
[Visual Basic]
Sub RemoveBaseExample(ByVal dte As DTE2)
' NOTE: This example requires a reference to the
' System.Collections namespace.
' 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)
If MsgBox("Remove all bases from " & cls.Name & "?", _
MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
' Remove every base except System.Object.
Dim bases As New ArrayList()
Dim base As CodeElement
For Each base In cls.Bases
If base.FullName <> ConvertFullName( _
cls.ProjectItem.ContainingProject.CodeModel, _
"System.Object") Then
bases.Add(base)
End If
Next
For Each base In bases
cls.RemoveBase(base)
Next
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Function ConvertFullName(ByVal cm As CodeModel, _
ByVal fullName As String) As String
' Convert a .NET type name into a C++ type name.
If (cm.Language = CodeModelLanguageConstants.vsCMLanguageVC) Or _
(cm.Language = CodeModelLanguageConstants.vsCMLanguageMC) Then
Return fullName.Replace(".", "::")
Else
Return fullName
End If
End Function
[C#]
public void RemoveBaseExample(DTE2 dte)
{
// NOTE: This example requires a reference to the
// System.Collections namespace.
// 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);
if (MessageBox.Show("Remove all bases from " + cls.Name + "?",
"", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// Remove every base except System.Object.
ArrayList bases = new ArrayList();
foreach (CodeElement baseElement in cls.Bases)
{
if (baseElement.FullName != ConvertFullName(
cls.ProjectItem.ContainingProject.CodeModel,
"System.Object"))
bases.Add(baseElement);
}
foreach (CodeElement baseElement in bases)
cls.RemoveBase(baseElement);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
string ConvertFullName(CodeModel cm, string fullName)
{
// Convert a .NET type name into a C++ type name.
if ((cm.Language == CodeModelLanguageConstants.vsCMLanguageVC) ||
(cm.Language == CodeModelLanguageConstants.vsCMLanguageMC))
return fullName.Replace(".", "::");
else
return fullName;
}
Zabezpieczenia programu .NET Framework
- Pełne zaufanie do bezpośredniego wywołującego. Tego elementu członkowskiego nie można używać w kodzie częściowo zaufanym. Aby uzyskać więcej informacji, zobacz Używanie bibliotek pochodzących z częściowo zaufanego kodu.
Zobacz też
Informacje
Inne zasoby
Porady: kompilowanie i uruchamianie kodu modelu obiektów automatyzacji — przykłady