이식 가능한 클래스 라이브러리의 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 형식을 사용하여 작업을 수행하는 경우 코드를 확인하여 발생 가능한 문제를 수정해야 합니다. 해당 형식은 MethodInfo, FieldInfo, PropertyInfo, EventInfo, MemberInfo, MethodBase, ConstructorInfoParameterInfo입니다.

제네릭 형식의 식 트리

Windows Phone 7에서 VerificationException 예외는 제네릭 형식인 지역 변수를 참조하는 식 트리를 만들 때 throw됩니다.

개방형 제네릭 형식의 리플렉션

Windows Phone 7에서 리플렉션은 폐쇄형 제네릭 형식에서 지원되지만 대부분의 리플렉션 작업은 개방형 제네릭 형식에서 지원되지 않습니다. 개방형 제네릭 형식에서는 Windows Phone 7에서 다음 리플렉션 작업만 지원됩니다.

  • GetType or GetMethods 메서드를 호출하여 개방형 제네릭 형식 또는 메서드 검색

  • MakeGenericType 또는 MakeGenericMethod 메서드를 호출하여 개방형 제네릭 형식 또는 메서드로부터 제네릭 형식 또는 메서드 만들기

개방형 제네릭 형식에 대한 다른 모든 리플렉션 작업의 경우 NotSupportedException 예외가 throw됩니다.

참고 항목

기타 리소스

이식 가능한 클래스 라이브러리

변경 기록

날짜

변경 내용

이유

2011년 4월

동작 변경에 대한 자세한 내용이 추가되었습니다.

향상된 기능 관련 정보

2011년 3월

항목이 추가되었습니다.

향상된 기능 관련 정보