IXamlNameResolver 介面

定義

描述服務,這個服務可以傳回依 XAML 名稱指定的物件,或傳回會延後名稱解析的語彙基元。 該服務也可以傳回 XAML 名稱範圍中所有具名物件的可列舉集。

public interface class IXamlNameResolver
public interface IXamlNameResolver
type IXamlNameResolver = interface
Public Interface IXamlNameResolver

備註

此介面不適用於一般 XAML 案例的外部實作,因為它是服務。 此服務可讓標記延伸和類型轉換器在 XAML 節點表示中時,將 XAML 名稱解析為來自相同 XAML 來源的其他物件。 此服務可用來解析任何依賴 XAML 名稱來對周圍 XAML 生產環境進行非線性存取的機制的正向參考。 如需詳細資訊,請參閱 XAML 的類型轉換器和標記延伸

當 XAML 物件寫入器叫用值轉換行為時,類型轉換器和標記延伸模組可以在 XAML 物件寫入器所提供的服務內容上,查詢 IXamlNameResolver 為服務。 如需詳細資訊,請參閱Type Converters 和 Markup Extensions for XAML 和服務內容的 Type Converters 和 Markup Extensions

此服務會公開可延遲名稱解析的 API。 服務所實作的隱喻是,無法針對部分名稱物件圖形在第一次傳遞中解析的名稱應該儲存並用來建立修正權杖。 在預設行為中,系統會針對第二次嘗試的另一個解析嘗試提交所有這類名稱。 第二階段會完成整體名稱物件圖形,而且所有修正權杖都能夠解析。

注意

即使特定實作允許它們,XAML 中的轉送參考仍會產生效能後果。 最佳做法是生產品質 XAML,請盡可能避免轉送參考。

屬性

IsFixupTokenAvailable

取得值,這個值判斷是否可以呼叫 GetFixupToken(IEnumerable<String>, Boolean),以便將名稱解析為正向解析的語彙基元。

方法

GetAllNamesAndValuesInScope()

傳回 XAML 名稱範圍中所有具名物件的可列舉集。

GetFixupToken(IEnumerable<String>)

傳回可修正會產生向前參考之特定標記模式的物件。

GetFixupToken(IEnumerable<String>, Boolean)

傳回可修正會產生向前參考之特定標記模式的物件。

Resolve(String)

從名稱參考解析物件。

Resolve(String, Boolean)

從名稱參考來解析物件,並提供追蹤值,報告是否已針對物件圖形用途完整初始化物件。

事件

OnNameScopeInitializationComplete

發生於 XAML 處理器已將所有相關名稱註冊至支援 XAML 名稱範圍中時。

適用於

另請參閱