XmlInclude или SoapInclude - PullRequest
       1

XmlInclude или SoapInclude

3 голосов
/ 01 мая 2009

Я разрабатываю веб-сервис, который возвращает массивы классов, которые я определяю в веб-сервисе. Когда я тестирую его, я получаю: «System.InvalidOperationException: тип WebSite + HostHeader не ожидался. Используйте атрибут XmlInclude или SoapInclude, чтобы указать типы, которые статически не известны».

Вот часть кода:

[WebService(Namespace = "http://WebSiteInfo.Podiumcrm.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebSite : System.Web.Services.WebService
{
    public class WebSiteEntry
    {
        public string SiteName = "";
        public string Comment = "";
        public string IISPath = "";
        public int SiteID = 0;
        public ArrayList HostHeaders;

        public WebSiteEntry()
        {
        }
    }
    public class HostHeader
    {
        public string IPAddress = "";
        public int Port = 0;
        public string URL = "";

        public HostHeader()
        {
        }
    }


    [WebMethod(EnableSession = true)]
    [TraceExtension(Filename = @"C:\DotNetLogs\WebSiteServices.log")]
    public WebSiteEntry[] WebSites()
    {...}
}

Когда я пытаюсь:

[WebService(Namespace = "http://WebSiteInfo.Podiumcrm.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[XmlInclude(typeof(WebSiteEntry))]
[XmlInclude(typeof(WebSiteProperty))]
[XmlInclude(typeof(HostHeader))]

public class WebSite : System.Web.Services.WebService
{...}

Я получаю: "Не удалось найти тип или имя пространства имен XmlInclude (отсутствует директива using или ссылка на сборку?)"

Указывает на человека, который может дать мне заклинание, которое компилируется и исполняется!

Спасибо ...

1 Ответ

4 голосов
/ 01 мая 2009

Из полученной ошибки:

Не удалось найти тип или имя пространства имен 'XmlInclude' (отсутствует директива using или ссылка на сборку?)

Похоже, вам не хватает пространства имен System.Xml.Serialization . Вы можете полностью определить тип XmlInclude, например:

System.Xml.Serialization.XmlInclude(typeof(WebSiteProperty))

или добавьте пространство имен с помощью директивы using:

using System.Xml.Serialization
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...