[DataContract]의 네임 스페이스


230

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

using System;
using System.Runtime.Serialization;

다음은 내 코드 스 니펫입니다.

using System;
using System.Runtime.Serialization;

namespace MyNamespace {

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

그리고 내가 얻는 오류 :

유형 또는 네임 스페이스 이름 'DataContract'를 찾을 수 없습니다 (사용 지시문 또는 어셈블리 참조가 누락 되었습니까?)

올바른 네임 스페이스를 사용하지 않습니까?


VS 2017을 사용하면 컴파일러 오류는 빌드 할 수 없으며 오류 목록에 메시지가 없거나 전혀 표시되지 않습니다. DataContract의 구문 색상도없고 아무것도 없습니다.
dudeNumber4

@ dudeNumber4 프로젝트 추가 / 참조를 마우스 오른쪽 버튼으로 클릭하십시오. 대화 상자에서 System.Runtime.Serialization을 찾아 확인란을 체크 상태로 만듭니다. 그런 다음 "확인"을 누르십시오
Sim Mak

답변:


433

DataContractAttribute클래스는 System.Runtime.Serialization네임 스페이스에 있습니다.

에 대한 참조를 추가해야합니다 System.Runtime.Serialization.dll. 해당 어셈블리는 기본적으로 참조되지 않습니다. 프로젝트에 참조를 추가하려면 솔루션 탐색기에서 참조-> 참조 추가로 이동하여 어셈블리 참조를 수동으로 추가해야합니다.


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

11
그게 다야, 내 솔루션에 참조가 없었습니다! 참조가 필요한 경우 라인에서 오류가 발생한다고 생각했습니다 using System.Runtime.Serialization;. 나는 내가 틀렸다고 생각한다 :)
Otiel

2
어. 왜 지구상에서 using성명서에서 오류가 발생하지 않습니까? 그건 말이되는 것 같습니다.
Yatrix

7
다른 dll이 해당 네임 스페이스를 사용하고 있기 때문에 (그렇지 않으면 오류가 발생합니다)
Gui

4
감사합니다! Microsoft의 예제 의사 중 누구도 이것을 언급하지 않았습니다.
BobRodes


5

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

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


5

.Net 4.0 프레임 워크 용 Visual Studio에서

  1. 프로젝트에 새로운 참조를 추가하십시오.
  2. .Net 탭에서 검색 System.Runtime.Serialization.
  3. 이제을 사용할 수 있습니다 using System.Runtime.Serialization. 그리고 오류가 표시되지 않습니다.

0

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

System.ServiceModel 사용;
System.Runtime.Serialization 사용;

그런 다음이 문제는 내 프로그램에서 해결되었습니다. 이 답변이 도움이 되길 바랍니다. 감사.


0

참조에 C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Runtime.Serialization.dll을 추가하여이 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.