自定義控件開發(fā)之生命周期(一)_第1頁
自定義控件開發(fā)之生命周期(一)_第2頁
自定義控件開發(fā)之生命周期(一)_第3頁
自定義控件開發(fā)之生命周期(一)_第4頁
自定義控件開發(fā)之生命周期(一)_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

自定義控件開發(fā)自定義控件開發(fā)

一、概述:

在.net中我們會(huì)有很多功能很強(qiáng)大的控件,這大大滿足了多數(shù)專案的需求,但在日新月異的軟件世界中,往往專案的需求是千種萬樣的。所以為了使?jié)M足一些專案的特定功能的需求,并且能多次復(fù)用,自定義控件完全是為這一需求量身定做的,自定義控件的原則是有什么樣的需求就可以做出什么樣的控件。自定義控件開發(fā)

二、我們來看看幾個(gè)問題

2.1:什么是自定義控件? 2.2:自定義控件需要一些什么樣的周邊基礎(chǔ)知識(shí)?2.3:通過本次主題的學(xué)習(xí),我們能達(dá)到一個(gè)什么樣的水平?(希望大家在學(xué)習(xí)的時(shí)候要有一顆平常心,現(xiàn)在的技術(shù)日新月異,推陳出新.以致于我們初學(xué)者學(xué)習(xí)沒有一點(diǎn)方向感,隨著時(shí)間的推移將自己原本有著強(qiáng)烈興趣的那顆心慢慢被磨滅掉了.在此,我以一個(gè)過來人,有著十幾年開發(fā)經(jīng)驗(yàn)的”老人”給大家提醒忠告:技術(shù)是靠一點(diǎn)一滴積累起來的,需要你不斷的一個(gè)接著一個(gè)知識(shí)點(diǎn)的去學(xué)習(xí)和實(shí)踐總結(jié).”蟻毀大堤”的故事告訴我們可以用螞蟻的精神去學(xué)習(xí)專業(yè)知識(shí),當(dāng)你日復(fù)一日的去堅(jiān)持自己專業(yè)的學(xué)習(xí)和總結(jié),總有一天你定會(huì)成為這個(gè)行業(yè)的姣姣者.最后一句:專家絕對(duì)不是短時(shí)間塑造出來的.切記,切記.)

自定義控件開發(fā)

三、我們來解析一下這幾個(gè)問題

3.1:什么是自定義控件? 3.2:自定義控件需要一些什么樣的周邊基礎(chǔ)知識(shí)?3.3:通過本次主題的學(xué)習(xí),我們能達(dá)到一個(gè)什么樣的水平?3.1:什么是自定義控件?

從功能的角度來講,自定義控件實(shí)際上就是按照預(yù)定規(guī)則設(shè)計(jì)好的程序,這個(gè)程序片段是建立在有著某個(gè)特定規(guī)律的功能上.當(dāng)然也有可能是通用的.是可擴(kuò)展的,也是可復(fù)用的.之所以會(huì)花經(jīng)歷去設(shè)計(jì)自定義控件,是因?yàn)槟軒臀覀兘鉀Q項(xiàng)目當(dāng)中重復(fù)出現(xiàn)的功能需求.

從技術(shù)的角度來講的話,可以讓我們更深層次的去了解.net內(nèi)部的運(yùn)行機(jī)制,從原來”似懂非懂”的狀態(tài)有著質(zhì)的提升.并大大提高我們對(duì)專業(yè)的學(xué)習(xí)興趣.

自定義控件開發(fā)

三、我們來解析一下這幾個(gè)問題

3.1:什么是自定義控件? 3.2:自定義控件需要一些什么樣的周邊基礎(chǔ)知識(shí)?3.3:通過本次主題的學(xué)習(xí),我們能達(dá)到一個(gè)什么樣的水平?3.2:自定義控件需要一些什么樣的周邊基礎(chǔ)知識(shí)?

自定義控件開發(fā)在.net課程里面屬于高級(jí)課程,所以在學(xué)習(xí)之前必須要有一定的基礎(chǔ),主要是要具備.net基本運(yùn)行原理,生命周期,面向?qū)ο蟮乃枷氲恼J(rèn)識(shí),接口/抽象類的理解,事件委托等

自定義控件開發(fā)

三、我們來解析一下這幾個(gè)問題

3.1:什么是自定義控件? 3.2:自定義控件需要一些什么樣的周邊基礎(chǔ)知識(shí)?3.3:通過本次主題的學(xué)習(xí),我們能達(dá)到一個(gè)什么樣的水平?3.3:通過本次主題的學(xué)習(xí),我們能達(dá)到一個(gè)什么樣的水平?

我們學(xué)習(xí)目的最基本的一個(gè)目標(biāo)就是要能獨(dú)立開發(fā)自定義控件并將用于實(shí)際項(xiàng)目開發(fā)當(dāng)中去.其次是通過本次主題的學(xué)習(xí)我們能更加深入的了解到.net的內(nèi)部運(yùn)行機(jī)制,熟悉生命周期.對(duì).net框架的認(rèn)識(shí)絕對(duì)會(huì)有一個(gè)質(zhì)的提升,以增強(qiáng)接下來對(duì).net學(xué)習(xí)的底氣.當(dāng)然也要記住,任何一門技術(shù)越深入花的時(shí)間越多,理解也會(huì)更難.我們唯有堅(jiān)持不懈,勇往直前,克服重重困難,才能到達(dá)勝利的終點(diǎn).

自定義控件開發(fā)

四、本次課的主題(生命周期)4.1:什么是生命周期

4.2:什么是應(yīng)用程序的生命周期

4.3:什么是頁面的生命周期? 4.4:什么是控件的生命周期?

自定義控件開發(fā)

4.1:什么是生命周期

世間萬事萬物都被認(rèn)為有生命周期,通俗的理解就是一個(gè)事物從生到死的這個(gè)過程.我們把它稱為生命周期.但我更愿意理解為一個(gè)事物從開始到結(jié)束的這么一個(gè)過程.是不是

.net里面的生命周期也是這么一個(gè)概念呢!答案是肯定的.所以說一個(gè)頁面的產(chǎn)生前是開始,一個(gè)頁面的產(chǎn)生后是結(jié)束.理解生命周期的概念并不難,難的是要理解從開始到結(jié)束的這個(gè)過程到底經(jīng)歷了什么..net框架的生命周期極其復(fù)雜,所以我們應(yīng)該分而析之.我們現(xiàn)在主要將之分為三類:應(yīng)用程序的生命周期,頁面的生命周期,控件的生命周期.

自定義控件開發(fā)

4.1.1:什么是生命周期-圖片示例

客戶端向服務(wù)器端請(qǐng)求頁面的過程自定義控件開發(fā)

4.1.2:什么是生命周期-圖片示例

客戶端向服務(wù)器端請(qǐng)求頁面的過程自定義控件開發(fā)

4.1.3:什么是生命周期-圖片示例

客戶端向服務(wù)器端請(qǐng)求頁面的過程自定義控件開發(fā)

4.2:什么是應(yīng)用程序的生命周期

應(yīng)用程序的生命周期分兩個(gè)部分來解析,當(dāng)用戶(第一個(gè))去請(qǐng)求某個(gè)網(wǎng)站(應(yīng)用程序)頁面時(shí),往往第一次是很慢的,為什么呢?因?yàn)榈谝淮未蜷_時(shí)需要進(jìn)行編譯應(yīng)用程序頂級(jí)對(duì)象(稍后再解釋),然后進(jìn)行緩存.這就是第一次訪問慢的主因.

那么解析頁面之前到底經(jīng)歷了什么呢?這就是我們要講的第二部分,解析頁面之前就是走的應(yīng)用程序的生命周期,實(shí)際就是應(yīng)用程序域的管道流程(這么多概念???),這個(gè)流程是不可能繞過的.我們舉個(gè)例子,去醫(yī)院看病,哪個(gè)流程是不能繞過的.

吾認(rèn)為進(jìn)醫(yī)院大門是不能繞過的,這個(gè)一進(jìn)一出和應(yīng)用程序的生命周期非常相似.自定義控件開發(fā)

4.2.1:什么是應(yīng)用程序的生命周期

要是這么理解的話,應(yīng)用程序的生命周期是不是隨著頁面的請(qǐng)求完成而結(jié)束呢?不是這樣的.我們?cè)傧胂脶t(yī)院的例子,如果小張患有兩種疾病,他看完一種病后(相當(dāng)于一個(gè)頁面請(qǐng)求完成),會(huì)不會(huì)出醫(yī)院再進(jìn)醫(yī)院看第二種病呢!如果這樣的話,他就真的病的不輕.那這和應(yīng)用程序的生命周期有什么關(guān)聯(lián)呢

!應(yīng)用程序的生命周期是這樣去定義的,當(dāng)啟動(dòng)應(yīng)用程序后,應(yīng)用程序域會(huì)一直保持在那里.以供其它客戶端的請(qǐng)求響應(yīng),不需要每次都會(huì)經(jīng)歷從”生到死”的過程,這是這個(gè)流程每次都會(huì)跑,只不過第一次跑的流程和非第一次跑的有些不一樣.自定義控件開發(fā)

4.2.2:什么是應(yīng)用程序的生命周期

注意那個(gè)ASP.NET的部分自定義控件開發(fā)

4.2.3:什么是應(yīng)用程序的生命周期

這是多個(gè)人訪問網(wǎng)站應(yīng)用程序時(shí)的一個(gè)場景,所以理解這個(gè)應(yīng)用程序的生命周期尤其重要.自定義控件開發(fā)

4.2.4:什么是應(yīng)用程序的生命周期

這是之前所提到的第一次訪問應(yīng)用程序時(shí)會(huì)進(jìn)行對(duì)應(yīng)用程序的頂級(jí)項(xiàng)進(jìn)行編譯,然后進(jìn)行緩存,以便于在后面其它客戶端請(qǐng)求時(shí)的調(diào)用.自定義控件開發(fā)

4.2.5:什么是應(yīng)用程序的生命周期

這是之前所提到的第一次訪問應(yīng)用程序時(shí)會(huì)進(jìn)行對(duì)應(yīng)用程序的頂級(jí)項(xiàng)進(jìn)行編譯,然后進(jìn)行緩存,以便于在后面其它客戶端請(qǐng)求時(shí)的調(diào)用.自定義控件開發(fā)

4.2.6:什么是應(yīng)用程序的生命周期

這些選項(xiàng)是根據(jù)需要來進(jìn)行即時(shí)編譯.自定義控件開發(fā)

4.2.7:什么是應(yīng)用程序的生命周期

前面我們對(duì)應(yīng)用程序的生命周期有了一個(gè)大致的了解.我們接下來說說詳細(xì)的流程.

自定義控件開發(fā)

4.2.8:什么是應(yīng)用程序的生命周期

這些事件對(duì)于希望在引發(fā)關(guān)鍵請(qǐng)求管道事件時(shí)運(yùn)行代碼的網(wǎng)頁開發(fā)人員很有用。

如果是在開發(fā)自定義模塊,并且希望對(duì)發(fā)往管道的所有請(qǐng)求都調(diào)用該模塊,則這些事件也很有用。

自定義模塊實(shí)現(xiàn)

IHttpModule

接口。

在IIS7.0集成模式下,必須在模塊的

Init

方法中注冊(cè)事件處理程序

自定義控件開發(fā)

4.2.9:什么是應(yīng)用程序的生命周期

自定義控件開發(fā)

4.2.10:什么是應(yīng)用程序的生命周期

前面我們所講的應(yīng)用程序的管道事件都是由系統(tǒng)自動(dòng)流轉(zhuǎn)的,我們?nèi)藶榈拇a無法干預(yù).能有沒有在進(jìn)頁面之前我們能自動(dòng)編程,讓框架執(zhí)行到我們自定義的程序(模塊)呢.答案是肯定的,這里有一點(diǎn)小技巧,如果要執(zhí)行到自己的程序,必須滿足框架所給出的要求,要求就是我們的功能模塊必須實(shí)現(xiàn)某個(gè)接口,然后要某個(gè)公開的位置實(shí)現(xiàn)注冊(cè),讓框架知道你寫了程序,這樣它才能執(zhí)行到你的代碼.那是什么接口呢!接著往下看.自定義控件開發(fā)

4.2.11:什么是應(yīng)用程序的生命周期

這些事件對(duì)于希望在引發(fā)關(guān)鍵請(qǐng)求管道事件時(shí)運(yùn)行代碼的網(wǎng)頁開發(fā)人員很有用。

如果是在開發(fā)自定義模塊,并且希望對(duì)發(fā)往管道的所有請(qǐng)求都調(diào)用該模塊,則這些事件也很有用。

自定義模塊實(shí)現(xiàn)

IHttpModule

接口,必須在模塊的

Init

方法中注冊(cè)事件處理程序.自定義控件開發(fā)

4.2.11:什么是應(yīng)用程序的生命周期

1.BeginRequest

事件發(fā)出信號(hào)表示創(chuàng)建任何給定的新請(qǐng)求。

此事件始終被引發(fā),并且始終是請(qǐng)求處理期間發(fā)生的第一個(gè)事件

2.AuthenticateRequest

事件發(fā)出信號(hào)表示配置的身份驗(yàn)證機(jī)制已對(duì)當(dāng)前請(qǐng)求進(jìn)行了身份驗(yàn)證

自定義控件開發(fā)

4.2.12:什么是應(yīng)用程序的生命周期

3.PostAuthenticateRequest當(dāng)安全模塊已建立用戶標(biāo)識(shí)時(shí)發(fā)生.

4.AuthorizeRequest

事件發(fā)出信號(hào)表示ASP.NET已對(duì)當(dāng)前請(qǐng)求進(jìn)行了授權(quán)

5.PostAuthorizeRequest

事件發(fā)出信號(hào)表示ASP.NET已對(duì)當(dāng)前請(qǐng)求進(jìn)行了授權(quán)

6.

ResolveRequestCache

事件在ASP.NET完成授權(quán)事件以使緩存模塊從緩存中為請(qǐng)求提供服務(wù)后發(fā)生,從而繞過事件處理程序的執(zhí)行自定義控件開發(fā)

4.2.13:什么是應(yīng)用程序的生命周期

7.PostResolveRequestCache事件在ASP.NET跳過當(dāng)前事件處理程序的執(zhí)行并允許緩存模塊滿足來自緩存的請(qǐng)求時(shí)發(fā)生.

8.

MapRequestHandler

事件將根據(jù)所請(qǐng)求資源的文件擴(kuò)展名,選擇相應(yīng)的處理程序。

處理程序可以是本機(jī)代碼模塊,如IIS7.0

StaticFileModule,也可以是托管代碼模塊.也就是說自己可以寫一段代碼植入進(jìn)來給框架(生命周期流程中)去執(zhí)行.可以去web.config文檔中去注冊(cè).

自定義控件開發(fā)

4.2.14:什么是應(yīng)用程序的生命周期

9.PostMapRequestHandler事件在ASP.NET已將當(dāng)前請(qǐng)求映射到相應(yīng)的事件處理程序時(shí)發(fā)生

.

10.AcquireRequestState

事件當(dāng)ASP.NET獲取與當(dāng)前請(qǐng)求關(guān)聯(lián)的當(dāng)前狀態(tài)(如會(huì)話狀態(tài))時(shí)發(fā)生

.

11.PostAcquireRequestState事件在已獲得與當(dāng)前請(qǐng)求關(guān)聯(lián)的請(qǐng)求狀態(tài)(例如會(huì)話狀態(tài))時(shí)發(fā)生

自定義控件開發(fā)

4.3:什么是頁面的生命周期

ASP.NET頁運(yùn)行時(shí),此頁將經(jīng)歷一個(gè)生命周期,在生命周期中將執(zhí)行一系列處理步驟。

這些步驟包括初始化、實(shí)例化控件、還原和維護(hù)狀態(tài)、運(yùn)行事件處理程序代碼以及進(jìn)行呈現(xiàn)。

了解頁生命周期非常重要,因?yàn)檫@樣做您就能在生命周期的合適階段編寫代碼,以達(dá)到預(yù)期效果。 如果您要開發(fā)自定義控件,就必須熟悉頁生命周期,以便正確進(jìn)行控件初始化,使用視圖狀態(tài)數(shù)據(jù)填充控件屬性以及運(yùn)行控件行為代碼。

控件的生命周期基于頁的生命周期,但是頁引發(fā)許多您需要在自定義控件中處理的事件.自定義控件開發(fā)

4.3.1:什么是頁面的生命周期

一般來說,頁要經(jīng)歷下表概述的各個(gè)階段。

除了頁生命周期階段以外,在請(qǐng)求前后還存在應(yīng)用程序階段,但是這些階段并不特定于頁.也就是說不管是哪個(gè)頁面都會(huì)經(jīng)過這個(gè)生命周期.

生命周期的某些部分僅當(dāng)頁處理為回發(fā)時(shí)才出現(xiàn)。

對(duì)于回發(fā),部分頁回發(fā)過程中(當(dāng)您使用

UpdatePanel

控件)與整頁回發(fā)過程中的頁生命周期是一樣.

自定義控件開發(fā)

4.3.2:什么是頁面的生命周期

接下來逐一介紹頁面生命周期詳細(xì)步驟.

頁請(qǐng)求發(fā)生在頁生命周期開始之前。

用戶請(qǐng)求頁時(shí),ASP.NET將確定是否需要分析和編譯頁(從而開始頁的生命周期),或者是否可以在不運(yùn)行頁的情況下發(fā)送頁的緩存版本以進(jìn)行響應(yīng).

1.頁請(qǐng)求自定義控件開發(fā)

4.3.3:什么是頁面的生命周期

在啟動(dòng)階段,將設(shè)置頁屬性如

Request

Response。

在此階段,頁還將確定請(qǐng)求是回發(fā)請(qǐng)求還是新請(qǐng)求,并設(shè)置IsPostBack

屬性。

頁還設(shè)置

UICulture

屬性應(yīng).

2.啟動(dòng)解析自定義控件開發(fā)

4.3.4:什么是頁面的生命周期

頁初始化期間,可以使用頁中的控件,并將設(shè)置每個(gè)控件的

UniqueID

屬性。

如果需要,還會(huì)向頁應(yīng)用于母版頁和主題。

如果當(dāng)前請(qǐng)求是回發(fā)請(qǐng)求,則回發(fā)數(shù)據(jù)尚未加載,并且控件屬性值尚未還原為視圖狀態(tài)中的值

.

3.頁面初始化自定義控件開發(fā)

4.3.5:什么是頁面的生命周期

加載期間,如果當(dāng)前請(qǐng)求是回發(fā)請(qǐng)求,則將使用從視圖狀態(tài)和控件狀態(tài)恢復(fù)的信息加載控件屬性

.

4.加載自定義控件開發(fā)

4.3.6:什么是頁面的生命周期

如果請(qǐng)求是回發(fā)請(qǐng)求,則將調(diào)用控件事件處理程序。

之后,將調(diào)用所有驗(yàn)證程序控件的

Validate

方法,此方法將設(shè)置各個(gè)驗(yàn)證程序控件和頁的

IsValid

屬性

.

5.回發(fā)事件處理自定義控件開發(fā)

4.3.7:什么是頁面的生命周期

在呈現(xiàn)之前,會(huì)針對(duì)該頁和所有控件保存視圖狀態(tài)。

在呈現(xiàn)階段中,頁會(huì)針對(duì)每個(gè)控件調(diào)用

Render

方法,它會(huì)提供一個(gè)文本編寫器,用于將控件的輸出寫入頁的

Response

屬性的

OutputStream

對(duì)象中

.

6.呈現(xiàn),輸出自定義控件開發(fā)

4.3.8:什么是頁面的生命周期

完全呈現(xiàn)頁并已將頁發(fā)送至客戶端、準(zhǔn)備丟棄該頁后,將引發(fā)

Unload

事件。

此時(shí),將卸載頁屬性(如Response

Request)并執(zhí)行清理

.

7.卸載自定義控件開發(fā)

4.3.9:什么是頁面的生命周期

上面介紹的是頁面生命周期的各個(gè)階段,是一種文字說明.而實(shí)際的各個(gè)階段都會(huì)有對(duì)應(yīng)的行為,我們稱之為生命周期頁事件.在頁生命周期的每個(gè)階段中,頁將引發(fā)可運(yùn)行您自己的代碼進(jìn)行處理的事件。

對(duì)于控件事件,通過以聲明方式使用特性(如

onclick)或以使用代碼的方式,均可將事件處理程序綁定到事件。 頁還支持自動(dòng)事件連接,即ASP.NET將查找具有特定名稱的方法,并在引發(fā)了特定事件時(shí)自動(dòng)運(yùn)行這些方法。

如果

@

Page

指令的

AutoEventWireup

特性設(shè)置為

true,頁事件將自動(dòng)綁定至使用命名約定

Page_事件(如Page_Load

Page_Init)的方法.

自定義控件開發(fā)

4.3.10:什么是頁面的生命周期

下面列出了最常用的頁生命周期事件。

除了列出的事件外還有其他事件;不過,大多數(shù)頁處理方案不使用這些事件。而是主要由ASP.NET網(wǎng)頁上的服務(wù)器控件使用,以初始化和呈現(xiàn)它們本身。

如果要編寫自定義ASP.NET服務(wù)器控件,則需要詳細(xì)了解這些事件(后面會(huì)有介紹)

.

自定義控件開發(fā)

4.3.11:什么是頁面的生命周期

自定義控件開發(fā)

4.3.12:什么是頁面的生命周期

1.PreInit事件自定義控件開發(fā)

4.3.13:什么是頁面的生命周期

在所有控件都已初始化且已應(yīng)用所有外觀設(shè)置后引發(fā)。

各個(gè)控件的

Init

事件在頁的

Init事件之前發(fā)生。使用該事件來讀取或初始化控件屬性2.Init事件自定義控件開發(fā)

4.3.14:什么是頁面的生命周期

在頁的初始化階段結(jié)束時(shí)引發(fā)。

Init

InitComplete

事件之間僅發(fā)生一個(gè)操作:開啟對(duì)視圖狀態(tài)更改的跟蹤。

視圖狀態(tài)跟蹤使控件可以保留所有以編程方式添加到

ViewState集合的值。

在開啟視圖狀態(tài)跟蹤之前,所有添加到視圖狀態(tài)的值都會(huì)在回發(fā)期間丟失??丶ǔT谝l(fā)其

Init

事件后立即開啟視圖狀態(tài)跟蹤。 使用此事件對(duì)要在下一個(gè)回發(fā)后務(wù)必保留的視圖狀態(tài)進(jìn)行更改.3.InitComplete事件自定義控件開發(fā)

4.3.15:什么是頁面的生命周期

在頁為自身和所有控件加載視圖狀態(tài)之后以及處理

Request

實(shí)例包括的回發(fā)數(shù)據(jù)之后引發(fā)

.4.PreLoad事件自定義控件開發(fā)

4.3.16:什么是頁面的生命周期

Page

對(duì)象對(duì)

Page

對(duì)象調(diào)用

OnLoad

方法,然后以遞歸方式對(duì)每個(gè)子控件執(zhí)行相同操作,直到加載完本頁和所有控件為止。

各個(gè)控件的

Load

事件在頁的

Load

事件之后發(fā)生。 使用

OnLoad

事件方法來設(shè)置控件中的屬性并建立數(shù)據(jù)庫連接.5.Load事件自定義控件開發(fā)

4.3.17:什么是頁面的生命周期

.6.控件事件自定義控件開發(fā)

4.3.18:什么是頁面的生命周期

在事件處理階段結(jié)束時(shí)引發(fā),對(duì)需要加載頁上的所有其他控件的任務(wù)使用該事件.7.LoadComplete事件自定義控件開發(fā)

4.3.19:什么是頁面的生命周期

Page

對(duì)象創(chuàng)建呈現(xiàn)頁所需的所有控件(包括組合控件的子控件)之后引發(fā).(為此,Page

對(duì)象

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論