У меня есть объект вида:
public class Report
{
m_filter1;
m_filter2;
...
m_filtern;
AddFilter1(int a)
{
m_filter1 = /* some logic of filtering results using the value of a */
}
...
}
Также соответствующий статический метод, используемый для использования класса Report:
public static List<Result> GetResults(Report r)
{
/* use r to query the DB and return an array of results */
}
Поскольку этот метод должен быть представлен с использованием WCF, я также должен сделать класс Report доступным для «внешнего» (клиентского) использования, но его методы-члены, которые скрывают внутреннюю структуру, нельзя использовать в прокси-классе WCF сгенерировано для него.
Поскольку я не могу разоблачить закрытых членов Report, как я могу элегантно решить проблему методов-членов, необходимых для потребляющей стороны?
Я подумал о контракте на обслуживание в форме:
public class ReportingService
{
Report m_report = new Report();
AddFilter1(int a)
{
m_report.AddFilter1(a);
}
...
}
То есть, чтобы обернуть методы-члены класса Report с использованием одного экземпляра Report, но это накладывает ограничение на использование одного не поточно-ориентированного объекта, совместно используемого всеми вызовами службы.
Есть что-нибудь основное, что я здесь упускаю? я довольно новичок в WCF, поэтому я, вероятно, упустил из виду простую схему решения этой проблемы.
Спасибо,
Harel