generic interface issues

I'm having an issue trying to use a generic typed interface with WWF.

I have an interface defined like so:

[ExternalDataExchangeAttribute()]

public interface IInterfaceName<TCommand> where TCommand : ConstraintType

{

void MethodName(TCommand Request);

event EventHandler<ExecuteEventArgs<TCommand>> ExecuteStarted;

event EventHandler<ExecuteEventArgs<TCommand>> ExecuteValidated;

event EventHandler<ExecuteCompletedEventArgs<TCommand>> ExecuteCompleted;

}

This compiles fine, but when I try to use this interface as the InterfaceType for a HandleExternalEventActivity in a Sequential Workflow with code separation, the interface name shows as IInterfaceName`1.

Is there a solution/workaround for this type of situation This seems to be a problem with the way the XML parser represents generic classes/interfaces.



Answer this question

generic interface issues

  • Whizman

    Generic methods are not supported in V1 for the reasons specified above - we do not have support in our activities and our communication infrastructure for such calls.

    Nothing prevents you from making a call to a method on a generic interface though, just as long as the method is not parametric in any way (there's no way to provide the type arguments).

    Thanks,
    Angel



  • KaroK

    I think the problem is that Generic interfaces types are incomplete type specifications, and there is no method that I can see of specifying the type parameters with the HandleExternalEvent/CallExternalMethod activities. Without being able to fully specify the type, I don't know that the external data exchange service would be smart enough to link things up for you. What type of operation are you trying to do Certainly one way to work around the problem is to just declare standard interfaces that derive from your generic interfaces and specify the type parameters there.


  • Alan Kravanja

    Well, that is really the name of the interface in the CLR terms. That's the way generic types (interfaces or classes) are named, in which the number after the ` specifies the number of type parameters that the generic type has.


  • Glasgow_Bhoy

    Tomas Restrepo wrote:
    Well, that is really the name of the interface in the CLR terms. That's the way generic types (interfaces or classes) are named, in which the number after the ` specifies the number of type parameters that the generic type has.

    Does this mean that I cannot use a generic typed interface for an InterfaceType in WWF


  • generic interface issues