2009-07-27 5 views
0

내가이 클래스서비스 사용시 충돌을 피하는 방법은 무엇입니까? (.NET C#)

namespace CommonLibrary 
{ 
    public class Report() 
    { 
     public DateTime Begin { get; set; } 
     public int Count { get; set; } 
    } 
} 

이것은 WCF 서비스 메서드의 반환 유형을 상상해보십시오.

namespace CommonLibrary 
{ 
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] 
[System.Runtime.Serialization.DataContractAttribute(Name="TrafficProblemReport", Namespace="http://schemas.datacontract.org/2004/07/Indica")] 
public partial class TrafficProblemReport : object, System.Runtime.Serialization.IExtensibleDataObject 
{ 

    private System.Runtime.Serialization.ExtensionDataObject extensionDataField; 

    private System.DateTime BeginField; 

    private int CountField; 

    [System.Runtime.Serialization.DataMemberAttribute()] 
    public System.DateTime Begin 
    { 
     get 
     { 
      return this.BeginField; 
     } 
     set 
     { 
      this.BeginField = value; 
     } 
    } 

    [System.Runtime.Serialization.DataMemberAttribute()] 
    public int Count 
    { 
     get 
     { 
      return this.CountField; 
     } 
     set 
     { 
      this.CountField = value; 
     } 
    } 
} 
} 

을하지만 그것은 CommonLibrary 정의와 충돌 : 내가 svcutil.exe에를 사용하는 경우는 메타 데이터 클래스를 생성합니다. 나는 CommonLibrary의 방법에 WebService에 방법 결과 (보고서)를 통과 할 때 내가 컴파일 오류가 오전 :

오류 4에 가장 적합한 오버로드 된 메서드에 일치 'CommonLibrary.ClassName.MethodName (CommonLibrary.Report)'일부를 가지고 잘못된 인수

추가 이름 공간을 만들지 않고 을 해결하는 방법? (형식 변환을 피하고 싶습니다.)

+0

당신이 프록시를 생성 WCF 클라이언트 프로젝트에서 생성 된 클래스를 소유하고 참조하는 : 내가 잘해야이에 따라 ...

그는 svcutil 다음 어셈블리 대신 새로 만드는 형식을 사용하는 가정 것인가? –

+0

나는 모두 –

답변

2

WCF 서비스 참조를 생성 할 때 "CommonLibrary"와 다른 네임 스페이스를 지정하십시오.

+0

을 참조하고 있습니다. 또는 전에 다른 namesspace를 추가하십시오. .NET guidleines는 회사 이름과 같이 고유 한 외부 네임 스페이스를 사용한다고 종종 말합니다. –

+0

하지만 한 네임 스페이스의 개체를 다른 네임 스페이스로 변환해야합니다. –

+0

다른 답변을 올리도록 질문을 편집했습니다. –

관련 문제