Я получаю очень странную ошибку при попытке запустить svcutil.exe в службе WCF.
«Атрибут OperationBehaviorAttribute может работать только на классе обслуживания»
[InvalidOperationException]: OperationBehaviorAttribute может идти только в классе обслуживания, его нельзя поместить в интерфейс ServiceContract. Метод 'EditProduct' для типа 'IProductWCF' нарушает это. "
Я вставил свой код ниже, и если кто-нибудь сможет пролить свет на это, я буду очень признателен.
Я должен отметить, что он работает на каждом методе, кроме «EditOpportunityProductTypes»
Мой интерфейс:
namespace ProductWCF
{
[ServiceContract]
public interface IProductWCF
{
[OperationContract]
string SayHello(AppointmentFeedback objAppointmentFeedback);
[OperationContract]
Boolean CreateAppointmentFeedback(AppointmentFeedback objAppointmentFeedback);
[OperationContract]
List<ExpiringContractType> GetOpportunityProductTypes(int opportunityId);
[OperationBehavior]
Boolean EditOpportunityProductTypes(List<ExpiringContractType> lstExpiringContractTypes, int opportunityId);
}
}
Мое обслуживание:
namespace ProductWCF
{
public class Service : IProductWCF
{
[OperationBehavior]
public string SayHello(AppointmentFeedback objAppointmentFeedback)
{
return objAppointmentFeedback.Notes;
}
[OperationBehavior]
public Boolean CreateAppointmentFeedback(AppointmentFeedback objAppointmentFeedback)
{
ProductData.CRM.Objects.AppointmentFeedback objNewAppointmentFeedback = new AppointmentFeedback();
if (objNewAppointmentFeedback.Insert(objAppointmentFeedback.AppointmentId, objAppointmentFeedback.StarId, objAppointmentFeedback.AppointmentStatusId, objAppointmentFeedback.Notes, objAppointmentFeedback.Creator, objAppointmentFeedback.AttendeeName) > 0)
return true;
else
return false;
}
[OperationBehavior]
public List<ExpiringContractType> GetOpportunityProductTypes(int opportunityId)
{
return OpportunityProductTypeMethods.GetOpportunityConnectionTypes(opportunityId);
}
[OperationBehavior]
public Boolean EditOpportunityProductTypes(List<ExpiringContractType> lstExpiringContractTypes, int opportunityId)
{
return ProductData.CRM.Objects.OpportunityProductTypeMethods.UpdateOpportunityConnectionTypes(lstExpiringContractTypes, opportunityId);
}
}
}