不一致的可访问性 - 开发 Web 服务

本文关键字:开发 Web 服务 访问 不一致 | 更新日期: 2023-09-27 18:36:50

我正在尝试创建一个用于更新简单数据库表的 Web 服务。我有一个更新方法,该方法将参数作为员工类型的对象。我已经包含了 Employee 类所属命名空间的引用。由于我不明白的原因,我收到以下错误:可访问性不一致:参数类型"EmployeeDBApplication.Employee"比方法"EmployeeStoreWS.EmployeeStoreService.update(EmployeeDBApplication.Employee)"更难访问

class Employee
{
    private int id;
    public int Id
    {
        get { return id; }
        set { id = value; }
    }
    private double salary;
    public double Salary
    {
        get { return salary; }
        set { salary = value; }
    }
    private string address;
    public string Address
    {
        get { return address; }
        set { address = value; }
    }
    private string firstname;
    public string Firstname
    {
        get { return firstname; }
        set { firstname = value; }
    }
    private string lastname;
    public string Lastname
    {
        get { return lastname; }
        set { lastname = value; }
    }

    public override string ToString() {
        string x;
        x = "Employee ID:" + this.id + "'tName:" + this.firstname + "'t" + this.lastname + "'n'tSalary:" + this.salary + "'t Address:" + this.address; 
        return x;
    }
}

和网络服务:

public class EmployeeStoreService : System.Web.Services.WebService
{
    //id    int(11) NO  PRI 0   
    //firstname varchar(255)    YES         
    //lastname  varchar(255)    YES         
    //address   varchar(255)    YES         
    //salary    double  YES         
    [WebMethod]
    public MySqlConnection getConnection()
    {
        return new MySqlConnection("Database=sakila;Data Source=localhost;User Id=root;Password=george 01");
    }
    [WebMethod]
    public void update(Employee employee)
    {
        MySqlConnection connection = null;
        try
        {
            connection = getConnection();
            connection.Open();
            MySqlCommand myCommand = new MySqlCommand("UPDATE employee SET (?id,?firstname,?lastname,?address,?salary) WHERE employee.id = ?id");
            myCommand.Prepare();
            myCommand.Parameters.AddWithValue("?id", employee.Id);
            myCommand.Parameters.AddWithValue("?firstname", employee.Firstname);
            myCommand.Parameters.AddWithValue("?lastname", employee.Lastname);
            myCommand.Parameters.AddWithValue("?address", employee.Address);
            myCommand.Parameters.AddWithValue("?salary", employee.Salary);
            myCommand.ExecuteNonQuery();
            connection.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            if (connection != null)
                connection.Close();
        }
    }
}

不一致的可访问性 - 开发 Web 服务

你需要公开你的类。

public class Employee

它抱怨你的一些类成员是公共的,而类本身不是。 默认情况下,类是内部的

尝试更改此设置

class Employee
{
    private int id;
    //...

对此

public class Employee
{
    private int id;
    //...

除非您有特定原因不这样做,否则Employee定义为public

您的更新方法是公共的,因为您的类是内部的。 因此消息。如果未指定访问修饰符,则它是内部的。