【发布时间】:2016-04-24 15:33:54
【问题描述】:
我刚开始编写 WCF 服务,遇到了一个奇怪的问题。我不知道为什么在客户端调用的服务中的方法不能正常工作并且没有创建新书。 listBooks() 方法 id 可以,因为它返回书籍列表,但方法 addBook 不会在 booksList 中创建新书。但是这种情况只有当我使用客户端的这种方法时才会出现这种情况,因为在服务构造函数中调用的相同方法会创建一本书。
这是客户端代码:
namespace LibraryClient
{
class Program
{
static ServiceReference.ServiceClient client;
static void Main(string[] args)
{
client = new ServiceReference.ServiceClient();
client.addBook(2, "some book", "some author"); //this is not working
ServiceReference.Book[] books = client.listBooks();
foreach(var book in books)
{
Console.WriteLine("{0}", book.title);
}
Console.ReadLine();
}
}
}
和服务代码:
namespace LibraryService
{
public class Service : IService
{
private static List<Book> booksList;
private static List<User> usersList;
public Service()
{
booksList = new List<Book>();
usersList = new List<User>();
addBook(1, "ANOTHER BOOK", "ANOTHER AUTHOR"); //this is working
}
public List<Book> listBooks()
{
return booksList;
}
public List<User> listUsers() {
return usersList;
}
public void addBook(int id, string title, string author)
{
booksList.Add(new Book(id,title,author));
}
}
}
【问题讨论】: