Avatar billede henrik_k Nybegynder
26. marts 2009 - 14:34 Der er 1 løsning

Web services og polymorfi

Hej Eksperter,

Jeg får nedenstående fejl når jeg kalde min web service, hvor jeg sender et objekt som nedarver fra en abstrakt klasse. Er der nogen der kan hjælpe mig?


InvalidOperationException.
The type WebLookupService.Service.CommandQueueService was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically

Testkode:
IService service = new CommandQueueService(".\\TestQueue");
RegistrationServiceProxy.Instance.Register(service); //<-- Fejler
namespace WebLookupService
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    public class WebLookupService : WebService
    {
        private readonly RegistrationService registrationService;
        private readonly Service.LookupService lookupService;

        public WebLookupService()
        {
            Services services = new Services();
            registrationService = new RegistrationService(services);
            lookupService = new Service.LookupService(services);
        }

        [WebMethod]
        public void Register(IService service)
        {
      registrationService.Register(service);
        }
    }
}
namespace WebLookupService.Service
{
    [Serializable]
    public abstract class IService
    {
        public abstract void Stop();
        public abstract int GetLoad();
        public abstract ServiceTypes GetServiceType();
    }
}
namespace WebLookupService.Service
{
    [Serializable]
    public abstract class  ICommandQueueSendService : IService
    {
        public abstract void sendCommand(ICommand command);
    }
}
namespace WebLookupService.Service
{
    public class RegistrationServiceProxy : IRegistration
    {
        private static readonly ServiceProxy.WebLookupService serviceProxy;
        private static readonly RegistrationServiceProxy instance;

        public static RegistrationServiceProxy Instance
        {
            get { return instance; }
        }

        static RegistrationServiceProxy()
        {
            instance = new RegistrationServiceProxy();
            serviceProxy = new ServiceProxy.WebLookupService();
            serviceProxy.Url = "http://localhost/Service1.asmx";
        }

        private RegistrationServiceProxy()
        {
        }

        public string WebServiceURL
        {
            get { return serviceProxy.Url; }
            set
            {
                serviceProxy.Url = value;
            }
        }

        public void Register(IService service)
        {
            serviceProxy.Register(service);
        }
    }
}
Avatar billede henrik_k Nybegynder
27. marts 2009 - 09:41 #1
namespace WebLookupService.Service
{
    [Serializable]
    public abstract class IService
    {
        public abstract void Stop();
        public abstract int GetLoad();
        public abstract ServiceTypes GetServiceType();
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester