IHierarchyData Arabirim
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Düğüm nesnesi ve düğümün özelliklerini açıklayan bazı özellikler de dahil olmak üzere hiyerarşik veri yapısı düğümünü kullanıma sunar. Arabirimi uygulayan IHierarchyData nesneler koleksiyonlarda IHierarchicalEnumerable bulunabilir ve site gezintisi ve veri kaynağı denetimleri ASP.NET tarafından kullanılır.
public interface class IHierarchyData
public interface IHierarchyData
type IHierarchyData = interface
Public Interface IHierarchyData
- Türetilmiş
Örnekler
Aşağıdaki kod örneği, arabirimin IHierarchyData bir nesneyi sarmalayan FileSystemInfo bir sınıfla nasıl uygulandığını gösterir. FileSystemInfo sınıfı, arabiriminin ASP.NET hiyerarşik veri kaynağı denetimleri için temsil ettiği IHierarchyData hiyerarşik veri düğümüne iyi bir örnektir. Bu kod örneği, sınıfı için HierarchicalDataSourceControl sağlanan daha büyük bir örneğin parçasıdır.
public class FileSystemHierarchyData : IHierarchyData
{
private FileSystemInfo fileSystemObject = null;
public FileSystemHierarchyData(FileSystemInfo obj)
{
fileSystemObject = obj;
}
public override string ToString()
{
return fileSystemObject.Name;
}
// IHierarchyData implementation.
public bool HasChildren
{
get
{
if (typeof(DirectoryInfo) == fileSystemObject.GetType())
{
DirectoryInfo temp = (DirectoryInfo)fileSystemObject;
return (temp.GetFileSystemInfos().Length > 0);
}
else
{
return false;
}
}
}
// DirectoryInfo returns the OriginalPath, while FileInfo returns
// a fully qualified path.
public string Path
{
get
{
return fileSystemObject.ToString();
}
}
public object Item
{
get
{
return fileSystemObject;
}
}
public string Type
{
get
{
return "FileSystemData";
}
}
public IHierarchicalEnumerable GetChildren()
{
FileSystemHierarchicalEnumerable children =
new FileSystemHierarchicalEnumerable();
if (typeof(DirectoryInfo) == fileSystemObject.GetType())
{
DirectoryInfo temp = (DirectoryInfo)fileSystemObject;
foreach (FileSystemInfo fsi in temp.GetFileSystemInfos())
{
children.Add(new FileSystemHierarchyData(fsi));
}
}
return children;
}
public IHierarchyData GetParent()
{
FileSystemHierarchicalEnumerable parentContainer =
new FileSystemHierarchicalEnumerable();
if (typeof(DirectoryInfo) == fileSystemObject.GetType())
{
DirectoryInfo temp = (DirectoryInfo)fileSystemObject;
return new FileSystemHierarchyData(temp.Parent);
}
else if (typeof(FileInfo) == fileSystemObject.GetType())
{
FileInfo temp = (FileInfo)fileSystemObject;
return new FileSystemHierarchyData(temp.Directory);
}
// If FileSystemObj is any other kind of FileSystemInfo, ignore it.
return null;
}
}
Public Class FileSystemHierarchyData
Implements IHierarchyData
Public Sub New(ByVal obj As FileSystemInfo)
fileSystemObject = obj
End Sub
Private fileSystemObject As FileSystemInfo = Nothing
Public Overrides Function ToString() As String
Return fileSystemObject.Name
End Function
' IHierarchyData implementation.
Public Overridable ReadOnly Property HasChildren() As Boolean _
Implements IHierarchyData.HasChildren
Get
If GetType(DirectoryInfo) Is fileSystemObject.GetType() Then
Dim temp As DirectoryInfo = _
CType(fileSystemObject, DirectoryInfo)
Return temp.GetFileSystemInfos().Length > 0
Else
Return False
End If
End Get
End Property
' DirectoryInfo returns the OriginalPath, while FileInfo returns
' a fully qualified path.
Public Overridable ReadOnly Property Path() As String _
Implements IHierarchyData.Path
Get
Return fileSystemObject.ToString()
End Get
End Property
Public Overridable ReadOnly Property Item() As Object _
Implements IHierarchyData.Item
Get
Return fileSystemObject
End Get
End Property
Public Overridable ReadOnly Property Type() As String _
Implements IHierarchyData.Type
Get
Return "FileSystemData"
End Get
End Property
Public Overridable Function GetChildren() _
As IHierarchicalEnumerable _
Implements IHierarchyData.GetChildren
Dim children As New FileSystemHierarchicalEnumerable()
If GetType(DirectoryInfo) Is fileSystemObject.GetType() Then
Dim temp As DirectoryInfo = _
CType(fileSystemObject, DirectoryInfo)
Dim fsi As FileSystemInfo
For Each fsi In temp.GetFileSystemInfos()
children.Add(New FileSystemHierarchyData(fsi))
Next fsi
End If
Return children
End Function 'GetChildren
Public Overridable Function GetParent() As IHierarchyData _
Implements IHierarchyData.GetParent
Dim parentContainer As New FileSystemHierarchicalEnumerable()
If GetType(DirectoryInfo) Is fileSystemObject.GetType() Then
Dim temp As DirectoryInfo = _
CType(fileSystemObject, DirectoryInfo)
Return New FileSystemHierarchyData(temp.Parent)
ElseIf GetType(FileInfo) Is fileSystemObject.GetType() Then
Dim temp As FileInfo = CType(fileSystemObject, FileInfo)
Return New FileSystemHierarchyData(temp.Directory)
End If
' If FileSystemObj is any other kind of FileSystemInfo, ignore it.
Return Nothing
End Function 'GetParent
End Class
Aşağıdaki kod örneği bir IHierarchicalEnumerable koleksiyonda yinelemeli olarak yineleme, yöntemini kullanarak GetHierarchyData öğeyi numaralandırıcıdan ayıklama IHierarchyData ve veri öğesiyle temel çalışma gerçekleştirme işlemlerini gösterir.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ihd_1.aspx.cs" Inherits="ihd_1_aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="ihd_1.aspx.vb" Inherits="ihd_1_aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
Açıklamalar
Arabirim IHierarchyData , hiyerarşik bir yapının düğümlerini temsil eden ve üst ve alt düğümleriyle hiyerarşik ilişkileri izleyen sınıflar tarafından uygulanır. Arabirimi uygulayan IHierarchyData sınıflar, arabirimi uygulayan IHierarchicalEnumerable koleksiyonlarda bulunabilir.
Özellikler
HasChildren |
Nesnenin temsildiği hiyerarşik veri düğümlerinin IHierarchyData alt düğümlere sahip olup olmadığını gösterir. |
Item |
Nesnenin temsil ettiğini hiyerarşik veri düğümünü IHierarchyData alır. |
Path |
Düğümün hiyerarşik yolunu alır. |
Type |
Yöntemler
GetChildren() |
Geçerli hiyerarşik düğümün tüm alt düğümlerini temsil eden bir numaralandırma nesnesi alır. |
GetParent() |
Geçerli hiyerarşik düğümün üst düğümünü temsil eden bir IHierarchyData nesnesi alır. |