This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

StaticSiteMapProvider.BuildSiteMap أسلوب

Visual Studio 2010

عند تجاوز في فئة مشتقة، يحمل موقع تعيين معلومات من تخزين الدائم وبناء في الذاكرة.

مساحة الاسم:  System.Web
التجميع:  System.Web (في System.Web.dll)

public abstract SiteMapNode BuildSiteMap()

القيمة المُرجعة

النوع: System.Web.SiteMapNode
The جذر SiteMapNode of the مخطط الموقع التنقل بنية.

The BuildSiteMap أسلوب هو the واحد abstract عضو of the StaticSiteMapProvider فئة. BuildSiteMap أسلوب هو تسمى لتحميل وبنية عقدة مخطط الموقع من تخزين persهوtent. عندما تقوم بتطبيق BuildSiteMapالأسلوب، تأكد من أنه هو مسار تنفيذ اﻷمن، لأنه يطلب صفحة المتزامنة متعددة يمكن أن ينتج غير مباشر عدة استدعاءات لتحميل معلومات مخطط الموقع.

ملاحظات للمسئولين عن الإرث

عند تجاوز BuildSiteMapأسلوب في فئة مشتقة، تأكد من محددات مواقع المعلومات لتسوية SiteMapNodeالكائنات التي قمت بإضافتها إلى موفر مخطط الموقع الخاص بك، حتى FindSiteMapNodeيمكن استرداد الأسلوب عقدة مخطط موقع بغض النظر عن ما إذا كنت URL الخاص بعقدة مخطط موقع هو الذي تم توفيره كمسار ظاهري مطلق أو تطبيق مسار. النسبي implementers موفر مخطط الموقع باستخدام AddNodeيجب تسويتها أسلوب أي عناوين URL قبل تخزين SiteMapNodeالكائنات في الجداول التجزئة الداخلية نيابة عن موفر موقع المخطط.

سلوك الأمان الخاص باقتطاع هو مضمنة في SiteMapProviderو StaticSiteMapProviderفئة تطبيقات. ومع ذلك، للاقتطاع للأمان إلى اشتقاق دالة في فئات، يجب عليك تعيين Rolesخاصية لأي SiteMapNodeالكائنات التي تقوم بإنشائها أثناء إنشاء موفر مخطط موقع عندما تقوم بتجاوز BuildSiteMapالأسلوب.

ملاحظة هامةهام

BuildSiteMap أسلوب هو استدعاؤها بواسطة تطبيق الافتراضي FindSiteMapNode، GetChildNodes، و GetParentNodeالأساليب. إذا قمت بتجاوز BuildSiteMapأسلوب في فئة مشتقة، تأكد من أن تحميل بيانات مخطط الموقع مرة واحدة فقط و إرجاع تشغيل المكالمات اللاحقة.

يوضح المثال تعليمات برمجية التالي كيفية تطبيق BuildSiteMapأسلوب استرجاع البيانات من قاعدة بيانات الوصول Microsoft Office 2010 Suite و بناء SiteMapNodeالكائنات التي تمت إضافتها إلى ChildNodesمجموعة من جذر موقع المخطط عقدة. وأخيراً، RootNodeخاصية هو التي يتم إرجاعها إلى المستدعي.

هذا مثال للتعليمة البرمجية هي جزء من مثال أكبر متوفر لفئة StaticSiteMapProvider.


// Build an in-memory representation from persistent
// storage, and return the root node of the site map.
public override SiteMapNode BuildSiteMap() {

    // Since the SiteMap class is static, make sure that it is
    // not modified while the site map is built.
    lock(this) {

        // If there is no initialization, this method is being
        // called out of order.
        if (! IsInitialized) {
            throw new Exception("BuildSiteMap called incorrectly.");
        }

        // If there is no root node, then there is no site map.
        if (null == rootNode) {
            // Start with a clean slate
            Clear();

            // Select the root node of the site map from Microsoft Access.
            int rootNodeId = -1;

            if (accessConnection.State == ConnectionState.Closed)
                accessConnection.Open();
            OleDbCommand rootNodeCommand =
                new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL",
                                 accessConnection);
            OleDbDataReader rootNodeReader = rootNodeCommand.ExecuteReader();

            if(rootNodeReader.HasRows) {
                rootNodeReader.Read();
                rootNodeId = rootNodeReader.GetInt32(0);
                // Create a SiteMapNode that references the current StaticSiteMapProvider.
                rootNode   = new SiteMapNode(this,
                                             rootNodeId.ToString(),
                                             rootNodeReader.GetString(1),
                                             rootNodeReader.GetString(2));

            }
            else return null;

            rootNodeReader.Close();
            // Select the child nodes of the root node.
            OleDbCommand childNodesCommand =
                new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?",
                                 accessConnection);
            OleDbParameter rootParam = new OleDbParameter("parentid", OleDbType.Integer);
            rootParam.Value = rootNodeId;
            childNodesCommand.Parameters.Add(rootParam);

            OleDbDataReader childNodesReader = childNodesCommand.ExecuteReader();

            if (childNodesReader.HasRows) {

                SiteMapNode childNode = null;
                while(childNodesReader.Read()) {
                    childNode =  new SiteMapNode(this,
                                                 childNodesReader.GetInt32(0).ToString(),
                                                 childNodesReader.GetString(1),
                                                 childNodesReader.GetString(2));

                    // Use the SiteMapNode AddNode method to add
                    // the SiteMapNode to the ChildNodes collection.
                    AddNode(childNode, rootNode);
                }
            }

            childNodesReader.Close();
            accessConnection.Close();
        }
        return rootNode;
    }
}


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: