В Silverlight 2 я пытаюсь добавить новую службу, которая будет возвращать объект, содержащий два списка из службы WCF, в приложение Silverlight на клиенте. Файл svc и interface уже содержит два контракта, которые работают и используются. После добавления новой службы я нажимаю на «Обновить ссылку на службу» в приложении Silverlight и получаю сообщение об ошибке:
There was an error downloading "http://localhost:3005/CMS.svc" ...
Metadata contains a reference that cannot be resolved "http://localhost:3005/CMS.svc" ...The client and service bindings may be mismatched...
Несмотря на то, что проект веб-службы перестраивается без ошибок, я думаю, что должно быть что-то не так с тем, как я определил службу в проекте веб-службы, потому что, когда я удаляю новую службу, остальные две службы обновляются в порядке, и если я добавлю новый сервис, который, я знаю, в порядке, ссылка на сервис обновится. Поэтому я не думаю, что это проблема конечных точек или номера порта и т. Д.
Предполагается, что новый сервис вернет объект, который содержит два списка.
Вот код:
В файле интерфейса:
namespace CMSSilverlight.Web
{
// NOTE: If you change the interface name "ICMS" here, you must also update the reference to "ICMS" in Web.config.
[ServiceContract]
public interface ICMS
{
[OperationContract]
POCollection GetPOCollection(String s);
}
[DataContract]
public class POCollection
{
[DataMember]
public IList<Employee> em;
[DataMember]
public IList<School> sc;
}
public class Employee
{
public string EmpID { get; set; }
public string EmpName { get; set; }
public Employee(string empID, string empName)
{
this.EmpID = empID;
this.EmpName = empName;
}
}
public class School
{
public string SchID { get; set; }
public string SchName { get; set; }
public School(string schID, string schName)
{
this.SchID = schID;
this.SchName = schName;
}
}
}
В служебном файле:
namespace CMSSilverlight.Web
{
{
public POCollection GetPOCollection(String sParam)
{
IList<Employee> empList = new List<Employee>();
for (int i = 0; i < 5; i++)
{
empList.Add(new Employee(i.ToString(), i.ToString() + " Emp Name"));
}
IList<School> schList = new List<School>();
for (int i = 0; i < 5; i++)
{
schList.Add(new School(i.ToString(), i.ToString() + " Sch Name"));
}
POCollection po = new POCollection()
{
em = empList,
sc = schList
};
return po;
}
}
}