2011-09-13 6 views
203

[DataContract][DataMember] 요소에 사용할 네임 스페이스를 찾을 수 없습니다. 내가 찾은 바에 따르면, 다음을 추가하는 것으로 충분할 것으로 보이지만, 제 경우에는 그렇지 않습니다.[DataContract]의 네임 스페이스

형식 또는 네임 스페이스 이름 'DataContract이'을 (를) 찾을 수 없습니다 (당신이 누락 : 내가 얻을

using System; 
using System.Runtime.Serialization; 

namespace MyNamespace { 

    [DataContract] 
    public class Tuple<T1, T2> { 
      // A custom implementation of a Tuple 
      //... 
      //... 
     } 
} 

그리고 오류 : 여기

using System; 
using System.Runtime.Serialization; 

는 내 코드의 조각이다 사용 지시문 또는 어셈블리 참조)

올바른 네임 스페이스를 사용하고 있지 않습니다. ?

+0

VS 2017을 사용하면 컴파일러 오류가 발생하거나 빌드 할 수 없으며 오류 목록에 메시지가 나타나지 않습니다. DataContract의 구문 색 지정은 없으며 아무 것도 사용하지 않습니다. – dudeNumber4

+0

@ dudeNumber4 프로젝트 추가/참조에서 마우스 오른쪽 버튼을 클릭하십시오. 대화 상자에서 System.Runtime.Serialization을 찾아 체크 박스를 클릭하십시오. 그런 다음 "Ok"를 누르십시오 –

답변

375

DataContractAttribute 클래스는 System.Runtime.Serialization 네임 스페이스에 있습니다. 당신이 참조에 가야 있도록

하지만 System.Runtime.Serialization.dll

그리고 어셈블리에 대한 참조를 추가해야한다는 기본적으로 참조되지 -> 어셈블리 참조가 솔루션 탐색기에서 참조를 추가하고 추가

+56

....그리고 그 어셈블리는 기본적으로 참조되지 않으므로, 솔루션 탐색기에서'References -> Add Reference'로 가서 어셈블리 참조를 추가해야합니다 ... –

+10

그건 내 솔루션에 대한 참조가 없었습니다! 참조가 필요하면'System.Runtime.Serialization;을 사용하여 줄에 오류가 발생한다고 생각했습니다. 나는 틀렸다고 생각한다. :) – Otiel

+0

이 친구에게 감사드립니다. – TheGateKeeper

4

[DataContract] 및 [DataMember] 특성은 System.ServiceModel.dll에있는 System.ServiceModel 네임 스페이스에 있습니다.

System.ServiceModel은 System 및 System.Runtime.Serialization 네임 스페이스를 사용하여 데이터 멤버를 serialize합니다.

0

먼저 모델에 대한 참조를 추가 한 다음 코드에서 사용합니다. 추가해야하는 참조가 두 가지 있습니다.

using System.ServiceModel;
using System.Runtime.Serialization;

이 문제는 내 프로그램에서 해결되었습니다. 이 대답이 당신을 도울 수 있기를 바랍니다. 감사. 닷넷 4.0 프레임 워크에 대한 Visual Studio에서

3

,

  1. 봅니다 투사 새로운 참조를 추가합니다.
  2. .Net 탭에서 검색 System.Runtime.Serialization.
  3. 이제 using System.Runtime.Serialization을 사용할 수 있습니다. 오류가 표시되지 않습니다.