J'ai un scénario de service de service WCF comme ceConsommez service WCF avec le même nom et même espace de noms cible de BizTalk
Company.BO.Contracts espace de noms {
public interface ITypeService { }
public partial interface IType1Services : ITypeService
{
[OperationContract()]
Type1 GetType1(System.Int32 idValue);
[OperationContract()]
Type1 Save(Type1 myType1, System.Int32 changeUser);
}
public partial interface IType2Services : ITypeService
{
[OperationContract()]
Type2 GetType2(System.Int32 idValue);
[OperationContract()]
Type2 Save(Type2 type2, System.Int32 changeUser);
}
}
de la Société d'espace de noms. ContractFulfillment {
public class Type1Services : IType1Services
{
public MyType1 GetType1(System.Int32 idValue)
{
return new Type1();
}
}
public class Type2Services : IType2Services
{
public Type2 GetType2(System.Int32 idValue)
{
return new Type2();
}
}
}
Lorsque j'expose le code ci-dessus en tant que service WCF, BizTalk n'est pas capable de distinguer entre Type1.Save() et Type2.Save(). Existe-t-il un moyen sans modifier le service, car le service fait partie d'un cadre et nécessite plus de changements dans d'autres lieux dépendants?
Pour les clients autres que BizTalk, la couche d'accès au service est encapsulée dans la bibliothèque de types (type1, type2, etc.) et les clients accèdent à cette bibliothèque de types en tant que bibliothèque de classes normale.
Pouvez-vous être plus précis sur ce que vous voulez dire quand vous dites "BizTalk n'est pas capable de distinguer Type1.Save() et Type2.Save()"? En outre, que se passe-t-il si vous essayez de le consommer en utilisant un client WCF ("Ajouter une référence de service")? –