Я хочу создать приложение WCF Service
, которое должно использовать мою библиотеку, чтобы все методы библиотеки были доступны для клиента службы. Должен быть лучший способ, чем явно писать OperationContract
для каждого метода моей библиотеки, который действует как прокси-сервер и вызывает фактический метод библиотеки на стороне сервера, чтобы получить возвращаемое значение и вернуть его клиенту.Предоставить всю библиотечную функцию через WCF
ответ
Если вы хотите доступ к этим методам, вам нужно будет создать для них рабочие контракты.
Вы можете сделать это проще, создав небольшое приложение, которое проходит через файлы кода, находит и подписи метода, а затем форматирует их для интерфейса. Тогда вам просто нужно скопировать этот код в интерфейс.
не совсем то, что я искал, но все равно спасибо. Таким образом, нет хороших способов без обходных решений. – wodzu
Да, это не идеальный вариант, но для выполнения цикла не должно быть больше 10-15 минут. Вероятно, вы могли бы сгенерировать методы для файла .svc и кода для вызова других методов одновременно. – ernest
Там должно быть лучше, чем явно написание OperationContract для каждого метода моей библиотеки
Нет, не совсем.
Также помните, что библиотека часто является состоятельной, т. Е. Вы создаете экземпляр объекта, а когда вы вызываете методы экземпляра против этого объекта, вы сохраняете состояние при сохранении закрытых членов на уровне экземпляра.
Только методы static
могут быть «непосредственно» сопоставлены с сервисными операциями.
Скорее всего, вы можете полностью написать свой контракт WCF с нуля, чтобы сделать его обслуживание людей (т.е. без гражданства), и, возможно, совместимое (ошибки вместо исключений ... и т.д.).
Вы можете попробовать совместить соответствующие методы. Но это не всегда возможно. Но когда дело доходит до этого, если вы хотите иметь возможность вызвать этот метод, у вас должен быть контракт на операцию для него. Возможно, давая нам представление о том, с чем вы работаете, может помочь нам предложить другие пути. – ernest
У меня есть библиотека, которая предоставляет некоторые методы для администрирования активного каталога моего домена, и я хочу сделать его доступным через WCF. Таким образом, библиотека может оставаться там, где она есть, и ее можно использовать удаленно через клиента WCF. – wodzu
Вы только что повторили то, что вы сказали выше. Если вы хотите получить доступ к этим методам, вам нужно будет заключить контракт на один метод. – ernest