2013-04-29 4 views
1

Я создаю веб-сервис для разных клиентов. Поэтому у меня есть 3 класса для 3-х различных типов клиентов:Как создать шаблон 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:

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

Как вы можете видеть функции почти одинаковы - все они называют один и тот же рабочий класс, за исключением того, что они различны в attirbutes (Type1 vs. Type2) или называют один dditional функция, которая только преобразует строку в XMLDocument.

ВОПРОС: Как C# или Visual Studio помогут мне создать какой-то шаблон или что-то для этого. Проблема, с которой я столкнулся, заключается в том, что будет более 100 функций, и интерфейс будет управляться разными программистами, которые не все хорошо в C#. Таким образом, они забудут написать «тот же» код в трех разных классах/источниках :(

Кто-нибудь знает, как решить проблему Type1 по сравнению с Type2 (забудьте о типе 3). Type1 и 2 действительно являются одним и тем же источником, кроме: 1. имя класса отличается 2. Каждая функция в Type1 имеет дополнительный атрибут SoapRpcMethod

Сейчас я решить это с помощью предварительно процессор (моя собственная программа), которая производит 3 источника с 1 источника, а затем позвонить C# компилятор работает, но это неудобно и трудно понять для кого-то, не знакомого с программированием на C#. Веб-служба используется для доступа к серверам Oracle, поэтому веб-сервис C# - это только фасад, и в веб-службе не существует только логики приложений PL/S QL процедуры и т.д. C# Web Service управляется Oracle Программисты не знакомы с Windows/C# ...

ТИА Matjaz

ответ

0

Я думаю, что проблема, которую вы пытаетесь адреса дублирования кода - вы должны проверить из Template design pattern. Таким образом, люди не просто «забудут» написать избыточный код, который они должны использовать.

+0

Спасибо за ваш ответ, но проблема в том, что они должны написать ОДНУЮ строку кода в трех разных классах. Я использовал все шаблоны, которые я могу, и это живет мной с 1-строчной предварительной функцией. Но эта строка должна быть записана в три разных класса, которые производят три разных веб-сервиса для трех разных типов клиентов. Все почти то же самое, кроме атрибутов функций в каждом классе  – Matjaz

Смежные вопросы