2013-08-14 4 views
0

로 가져 오기/설정 클래스를 변환 I 클래스가 있습니다.WCF 서비스

[ServiceContract] 
    public interface INewUser 
    { 
     string UserName { get; set; } 
     int UserRole { get; set; } 
     string LoweredUserName { get; set; } 
    } 


[DataContract] 
public class GetNewUser 
{ 
    string userName; 
    int userRole; 
    string loweredUserName; 

    [DataMember] 
    public string UserName 
    { 
     get { return userName; } 
     set { userName = value; } 
    } 

    [DataMember] 
    public int UserRole 
    { 
     get { return userRole; } 
     set { userRole = value; } 
    } 

    [DataMember] 
    public string LoweredUserName 
    { 
     get { return loweredUserName; } 
     set { loweredUserName = value; } 
    } 
} 

도이 정확하지만 난 내가 가진 모든이 인터페이스를 상속하는 서비스 클래스에 무엇을 추가 할 모르겠습니다 경우 잘 모르겠어요 :

이 나는 ​​순간 인터페이스를 가지고

public class NewUser : INewUser 
    { 

    } 

누군가 다음에해야 할 일을 도와 줄 수 있습니까? 나는 틀린 무엇인가 벌써했다라고 확신한다. 그러나 나는 무엇이 확실하지 않다. 이것은 실제로 가능합니까?

+0

무언가에 대해 명확하지 않거나 WCF에 대해 읽지 않은지 잘 모르겠습니다. 이 간단한 예를 읽을 수 있습니다. http://weblogs.asp.net/ralfw/archive/2007/04/14/a-truely-simple-example-to-get-started-with-wcf.aspx – Nayan

+0

요약 , 당신은 당신의 인터페이스에 메소드를 가지고 그것들을'[OperationContract]'속성으로 꾸밀 필요가있다. 또한 DataContract는 유선을 통해 데이터를 직렬화하는 데 사용됩니다. 서비스 메소드는'NewUser'를 입력으로 사용하거나 결과로 반환해야합니다. 'NewUser' 클래스의 인터페이스에 메소드를 구현할 것입니다. – Tim

답변

2

서비스는 메소드 (작업 계약)를 클라이언트에 공개합니다. 인터페이스에는 메소드가 없으므로 (서비스 관점에서) 구현할 것이 없습니다.

당신은 이런 일을 할 수있는 그런 다음

[ServiceContract] 
public interface INewUser 
{ 
    [OperationContract] 
    UserInfo CreateNewUser(string userName); 
} 

이 구현 클래스에서, 당신은 것입니다 :

public NewUser : INewUser 
{ 

    public UserInfo CreateNewUser(string userName) 
    { 

     return new UserInfo() { 
        UserName = "John Doe", 
        UserRole = 5, 
        LoweredUserName = "john doe" 
        }; 
    } 
} 

UserInfo은 원래 당 정보를 나타내는 데 사용되는 클래스가 될 것입니다 코드, 데이터 계약으로 표시 :

[DataContract] 
public class UserInfo 
{ 

    [DataMember] 
    public string UserName { get; set; } 

    [DataMember] 
    public int UserRole { get; set; } 

    [DataMember] 
    public string LoweredUserName { get; set; } 
} 

이것은 간단한 이메일입니다. 위의 코드를 기반으로 한 예제를 통해 모든 정보를 함께 보여줄 수 있습니다.

그러나

은 당신이 진짜로 당신의 기존 라이브러리를 보면됩니다 어떻게해야 WCF 서비스에 기능 포장 및 데이터 계약으로 NewUser 클래스를 표시합니다. 데이터에 집중하는 것처럼 보입니다. 먼저 기능에 초점을 맞추어야합니다.

다른 방법을 넣어 형태를 돌려 현재 라이브러리 사용 NewUser에서 어떤 방법 중 하나를 입력 또는 - 즉 서비스의 NewUser 클래스가 아닌 특성에가는 것입니다.

관련 문제