[C#] [DataContract]의 네임 스페이스

사용할 네임 스페이스 [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’를 찾을 수 없습니다 (사용 지시문 또는 어셈블리 참조가 누락 되었습니까?)

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



답변

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

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


답변

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx

DataContractAttribute는 System.Runtime.Serialization 네임 스페이스에 있으며 System.Runtime.Serialization.dll을 참조해야합니다. .Net에서만 사용 가능> 3


답변

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

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


답변

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

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

답변

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

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

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


답변

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


답변