WCF功能没有在VSTO项目中显示

时间:2014-09-25 16:34:02

标签: c# wcf visual-studio-2012 vsto

我遇到了WCF服务的问题。我正在开发一个Excel插件,它将通过WCF服务与SQL Server数据库进行通信。

我的服务中有1个程序和1个功能。

过程正常,它可以在WCF测试客户端和Excel中显示ListBox中的结果(来自表中的行)。

问题在于功能。该函数在WCF测试客户端中工作,但在Excel解决方案中VS中的intellisense不会显示该函数的可能性。所以我不能称之为。

这是来自AdminService.svc的代码(getPlan工作正常,getAutentication没有)

public class AdminService : IAdminService
{
    string connection = ConfigurationManager.ConnectionStrings["PlanDatabase"].ToString();

    public List<Plan> getPlan()
    {
        List<Plan> plans = new List<Plan>();

        using (SqlConnection con = new SqlConnection(connection))
        {
            using (SqlCommand query = new SqlCommand("SELECT categoryid, categoryname FROM Production.Categories", con))
            {
                con.Open();
                SqlDataReader reader = query.ExecuteReader();

                while (reader.Read())
                {
                    Plan plan = new Plan();
                    plan.id = int.Parse(reader[0].ToString());
                    plan.name = reader[1].ToString();
                    plans.Add(plan);
                }
            }
        }

        return plans.ToList();
    }

    public bool getAutentication(string login, string psw){
        using (SqlConnection con = new SqlConnection(connection))
        {
            using (SqlCommand query = new SqlCommand("SELECT dbo.VerifyAccount('"+login+"','"+psw+"')", con))
            {
                con.Open();
                SqlDataReader reader = query.ExecuteReader();
                reader.Read();

                if (int.Parse(reader[0].ToString()) == 1)
                { 
                    return true;
                }

                return false;
            }
        }
    }
}

这是IAdminService.cs

[ServiceContract]
public interface IAdminService
{
    [OperationContract]
    bool getAutentication(string login, string psw);

    [OperationContract]
    List<Plan> getPlan();    
}

这是我在Excel Addin中的表单的代码

 AdminServiceClient connection = new AdminServiceClient();

    public Form1()
    {
        InitializeComponent();
        this.listBox1.DataSource = connection.getPlan().ToList();
        this.listBox1.DisplayMember = "name"; 
    }


    private void button1_Click(object sender, EventArgs e)
    {
        bool pass = false;
        this.Hide();
        MessageBox.Show(pass.ToString());
    }

Excel Addin中引用了服务。连接是正确的,因为getPlan正在显示并正常工作。但是,如果我想在Button1_click中使用此命令:

pass = connection.getAutentication('login','password')
VS告诉我函数没有定义。

您在我的代码中看到了某种错误吗?我认为它应该正常工作,但我不知道为什么它不会。

非常感谢您的回答!

0 个答案:

没有答案