2012-05-17 2 views
1

문자열 형식의 IP 주소를 구문 분석하려고하면이 오류가 발생합니다.C# 시도한 작업이 참조 된 개체 유형에 대해 지원되지 않습니다.

(System.Net의 IPAddress.Parse 메소드를 사용하여) 이것을 테스트하는 동안 public dns ip 주소 (4.2.2.2)를 사용하고있었습니다.

구문 분석을 올바르게 수행하고 IPAddress 개체를 반환합니다. 그러나이 개체의 ScopeId 속성에 액세스하려고하면 제목에 주어진 메시지와 함께 SocketException이 throw됩니다.

정말 여기서 문제를 파악할 수 없습니다. IPAddress.ScopeId 속성에 대한 문서를 살펴보면 AddressFamily = InterNetwork가 예외로 throw 될 때 예외가 발생한다고 나와 있습니다.

누군가 이유를 설명해 주시겠습니까?

답변

7

ScopeIDIPv6 특정 필드입니다. IPv4 주소가 있습니다. 따라서 예외가 발생합니다. 이 경우 InterNetwork은 IPv4를 의미합니다.

+0

좋아요, 그렇다면이 방법을 사용하여 IPv4 주소를 어떻게 파싱합니까? –

+0

ScopeID를 쿼리하지 마십시오. 'IPAddress ip = IPAddress.Parse ("4.2.2.2"); – Nick

+0

실제 문제는 Context.SaveChanges()를 호출 할 때 EntityFramework의 엔티티에 대해 IPAddress 유형의 속성을 사용했기 때문입니다. ScopeId를 쿼리하여 예외를 throw합니다. IPAddress 유형의 속성을 EF의 엔터티 클래스에서 사용할 수 없다는 말입니까? –

관련 문제