Share via


可攜式類別庫的 API 差異

更新:2011 年 4 月

為了讓 可攜式類別庫 中支援的型別能夠在不同的平台上運作,對 .NET Framework 4 中的型別做了一些變更。 只有當您在 可攜式類別庫 專案中工作時,才會遇到這些變更。 這些變更已修正不同型別版本之間的不一致。 例如在 Silverlight 中,System.Net.HttpWebRequest 類別包含名為 SupportsCookieContainer 的屬性,但是這個屬性並未存在於 .NET Framework 4 的 System.Net.HttpWebRequest 類別中。 在 可攜式類別庫 中,SupportsCookieContainer 屬性已加入至 .NET Framework,好讓這些型別一致。 但是,除非 .NET Framework 4 使用者在 可攜式類別庫 專案中工作,否則 SupportsCookieContainer 屬性無法提供給這些使用者使用。 本主題描述在 .NET Framework 中對 可攜式類別庫 的型別和成員所做的變更,以及您可能遇到的任何行為變更。

.NET Framework 4 變更

當您在 可攜式類別庫 專案中工作時,您會遇到下列在 .NET Framework 4 類別庫中變更的型別和成員。

System.ServiceModel.ClientBase<TChannel>.ChannelBase<T>

這個型別已加入至 .NET Framework。 它已經存在 Silverlight 類別庫中。 它有 52 個成員。 如需詳細資訊,請參閱 Silverlight 文件中的 System.ServiceModel.ClientBase<TChannel>.ChannelBase<T> 參考主題

System.ServiceModel.Channels.IHttpCookieContainerManager

這個型別已加入至 .NET Framework。 它已經存在 Silverlight 類別庫中。 它有 1 個成員。 如需詳細資訊,請參閱 Silverlight 文件中的 System.ServiceModel.Channels.IHttpCookieContainerManager 參考主題

System.Net.HttpWebRequest

兩個新的屬性已加入至 System.Net.HttpWebRequest:

成員

可攜式類別庫的變更

簽章

SupportsCookieContainer 屬性

新的屬性。

public bool SupportsCookieContainer { get; }

AllowReadStreamBuffering 屬性

新的屬性。

public bool AllowReadStreamBuffering { get; set; }

System.Net.WebRequest

兩個新的方法已加入至 System.Net.WebRequest:

成員

可攜式類別庫的變更

簽章

CreateHttp(Uri) 方法

新的方法。

public HttpWebRequest CreateHttp(System.Uri requestUri)

CreateHttp(String) 方法

新的方法。

public HttpWebRequest CreateHttp(string requestUriString)

System.Net.WebResponse

兩個新的成員已加入至 System.Net.WebResponse,一個方法已經變更。

成員

可攜式類別庫的變更

簽章

SupportsHeaders 屬性

新的屬性。

public bool SupportsHeaders { get; }

Dispose(Boolean) 方法

新的方法。

protected void Dispose(bool disposing)

Dispose 方法

簽章變更。

舊的:void IDisposable.Dispose()

新的:public void Dispose()

System.Xml.XmlReader

System.Xml.XmlReader 中已變更兩個方法。

成員

可攜式類別庫的變更

簽章

Dispose 方法

簽章變更。

舊的:void IDisposable.Dispose()

新的:public void Dispose()

Close 方法

簽章變更。

舊的:public abstract Close()

新的:public virtual Close()

System.Xml.XmlWriter

System.Xml.XmlWriter 中已變更兩個方法。

成員

可攜式類別庫的變更

簽章

Dispose 方法

簽章變更。

舊的:void IDisposable.Dispose()

新的:public void Dispose()

Close 方法

簽章變更。

舊的:public abstract Close()

新的:public virtual Close()

System.Xml.XmlResolver

System.Xml.XmlResolver 中已變更一個屬性。

成員

可攜式類別庫的變更

簽章

Credentials 屬性

簽章變更。

舊的:public abstract ICredentials Credentials { set; }

新的:public virtual ICredentials Credentials { set; }

API 的行為變更

某些型別和成員在 可攜式類別庫 專案中使用時,其行為會有所差異。

型別的中繼資料

當您評估從 System.Type 方法和屬性傳回的中繼資料時,等號比較運算子可能會在不同的平台上傳回不同結果。 在 .NET Compact Framework 中,每一個後續的 Type.GetMethod 方法呼叫都會傳回新的 System.Reflection.MethodInfo 執行個體,所以傳回值絕對不會評估為相同的值。 但是在 .NET Framework 4 中,使用相同的參數呼叫 GetMethod 會傳回相同的 MethodInfo 執行個體。 當您使用下列 System.Reflection 型別時,您必須檢閱您的程式碼,也可能加以修改:MethodInfoFieldInfoPropertyInfoEventInfoMemberInfoMethodBaseConstructorInfoParameterInfo

泛型型別的運算式樹狀架構

在 Windows Phone 7 上,如果您建立的運算式樹狀架構參考的區域變數是泛型型別,則會擲回 VerificationException 例外狀況。

反映於開放式泛型型別上

在 Windows Phone 7 上,封閉式泛型型別支援反映,而開放式泛型型別上不支援大部分的反映作業。 開放式泛型型別上只支援下列 Windows Phone 7 的反映作業:

針對開放式泛型型別上的所有其他反映作業,都會擲回 NotSupportedException 例外狀況。

請參閱

其他資源

可攜式類別庫

變更記錄

日期

記錄

原因

2011 年 4 月

已加入有關行為變更的詳細資訊。

資訊加強。

2011 年 3 月

加入主題。

資訊加強。