2013-04-29 4 views
1

다른 클라이언트를위한 웹 서비스를 만들고 있습니다.다른 속성을 가진 C# 템플릿을 만드는 방법

유형 1 :

[WebMethod] 
[SoapRpcMethod(Use = System.Web.Services.Description.SoapBindingUse.Literal)] 
public string databaseConnectionInfo() 
{ 
    return WSExecute.Executer.databaseConnectionInfo(System.Web.HttpContext.Current); 
} 

유형 2 :

[WebMethod] 
public string databaseConnectionInfo() 
{ 
    return WSExecute.Executer.databaseConnectionInfo(System.Web.HttpContext.Current); 
} 

유형 3 : 그래서 3 개 가지 클라이언트 유형에 대한 3 개 수업을

[WebMethod] 
public XmlDocument databaseConnectionInfo() 
{ 
    return this.convert(WSExecute.Executer.databaseConnectionInfo(System.Web.HttpContext.Current)); 
} 

당신이 기능을 볼 수 있듯이 거의 동일합니다. 그들은 모두 동일한 작업 클래스를 호출합니다. 단, attirbutes (Type1 대 Type2)가 다르거 나 하나만 호출하면됩니다. 문자열을 XMLDocument로만 변환하는 dditional 함수.

질문 : C# 또는 Visual Studio를 사용하여 어떻게 관리 할 수있는 템플릿을 만들 수 있습니까? 내가 직면하고있는 문제는 100 개 이상의 함수가있을 것이며 인터페이스는 C#에서 모두 좋지 않은 여러 프로그래머가 관리한다는 것입니다. 그래서 그들은 서로 다른 세 가지 클래스/소스에서 동일한 코드를 작성하는 것을 잊어 버릴 것입니다 : (

Type1과 Type2의 문제를 해결하는 방법을 아는 사람이 있습니까? Type1과 Type2는 실제로는 같은 소스입니다. 1. 클래스 이름은 다른 2 타입 1의 모든 기능이 추가 SoapRpcMethod가 지금은 1 원에서 3 소스를 생성 한 후 C 번호 전화 전처리 (내 자신의 프로그램)를 사용하여이 문제를 해결하고 들어

속성이있다 컴파일러. 작동하지만 어색하고 C# 프로그래밍에 익숙하지 않은 사람은 이해하기 어렵다. 웹 서비스는 Oracle 서버에 액세스하기 위해 사용되므로 C# 웹 서비스는 단지 façade이며 웹 서비스에만 응용 프로그램 로직이 없다. PL/S QL 절차 등 C# 웹 서비스는 윈도우/C#을에 익숙하지 오라클 프로그래머에 의해 관리되고 ...

TIA 마차 즈

답변

0

난 당신이 주소로 노력하고 문제가 코드 중복이라고 생각 - 당신이 확인해야 Template design pattern. 그런 식으로 사람들은 자신이 생각한 중복 코드를 작성하는 것을 '잊어 버리지'않습니다.

+0

답해 주셔서 감사합니다.하지만 문제는 3 가지 다른 클래스에 하나의 코드 행을 써야한다는 것입니다. 내가 할 수있는 모든 패턴을 사용했고,이 라인은 1 라인 사전 기능으로 나를 살아 간다. 그러나이 라인은 세 가지 다른 유형의 클라이언트에 대해 세 가지 웹 서비스를 생성하는 세 가지 다른 클래스로 작성되어야합니다. 모든 클래스의 함수에 대한 속성을 제외하고는 거의 동일합니다. – Matjaz

관련 문제