Универсальный WCF Wrapper

Я использую структуру сущности, и я хочу выставить некоторые методы через службы wcf;

У меня есть эта функция (на странице cs)

 using (ICRMEntities oContext = RemClient.Create())                
     oContext.FindByKey("ActivitySLA", SLAID); 

содержание этой функции

   public static T FindByKey(this IQueryable oQuery, int keyValue) where T : EntityObject, ISimpleBaseClassMD
        {
            return oQuery.FindByKey(keyValue, null);
        }

интерфейс, определенный в службе WCF как:

public interface ICRMEntities : IDisposable, IContextWithUser
    T FindByKey(string sObjectTypeCode, int keyValue, bool bRequestValue) where T : EntityObject, ISimpleBaseClassMD;

существует проблема с этим общим методом в WCF; как я могу обернуть этот метод, чтобы сохранить эту функциональность?

0
nl ja de

1 ответы

Ты не можешь.

Вы не можете раскрывать общие методы через службы WCF. Вам нужно определить тип, который будет использоваться. Это ограничение SOAP.

Но вы можете создать базовый класс в качестве возвращаемого типа и добавить атрибут KnownType в службу, чтобы определить, какие производные классы эта служба может вернуть.

Что-то подобное;

[KnownType(typeof(SomeClass))]
public interface ICRMEntities : IDisposable, IContextWithUser
    EntityObject FindByKey(string sObjectTypeCode, int keyValue, bool bRequestValue)
3
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot