我在wcf服务中.自定义一个类目的是连接数据库,这个类是通过单利模式创建的.但是在客户端调用的时候,这个类竟然无法创建对象.请wcf高手看看.
public class TestSer : ITestSer
{
...
public LoginParam GetLoginObj()
{
LoginParam loginobj = null;
MySQLHelper sqlhelper = MySQLHelper.CreatInstance();//自定义类用于连接数据库
string sqlstr = "select * from c_task";
int execcount = 0;
try
{
execcount = sqlhelper.ExecuteMySqlNonQuery(sqlstr, System.Data.CommandType.Text);
}
catch (Exception)
{
execcount = -1;
}
if (execcount < 0)
{
loginobj = null;
}
else
{
//这里由于没有创建数据库,所以暂时用假数据.
loginobj = new LoginParam();
loginobj.TaskID = "123450";
loginobj.AcceptLanguage = "1";
loginobj.LoginUrl = "http://www.baidu.com"; ;
loginobj.UserName = "张三";
loginobj.PassWord = "954471364";
}
return loginobj;
}
}
public class TestSer : ITestSer
{
...
public LoginParam GetLoginObj()
{
LoginParam loginobj = null;
MySQLHelper sqlhelper = MySQLHelper.CreatInstance();//自定义类用于连接数据库
string sqlstr = "select * from c_task";
int execcount = 0;
try
{
execcount = sqlhelper.ExecuteMySqlNonQuery(sqlstr, System.Data.CommandType.Text);
}
catch (Exception)
{
execcount = -1;
}
if (execcount < 0)
{
loginobj = null;
}
else
{
//这里由于没有创建数据库,所以暂时用假数据.
loginobj = new LoginParam();
loginobj.TaskID = "123450";
loginobj.AcceptLanguage = "1";
loginobj.LoginUrl = "http://www.baidu.com"; ;
loginobj.UserName = "张三";
loginobj.PassWord = "954471364";
}
return loginobj;
}
}
这是里面的创建实例的方法
public static MySQLHelper CreatInstance()
{
if (_instance == null)
{
lock (_lockobj)
{
if (_instance == null)
{
try
{
_instance = new MySQLHelper();
}
catch (Exception ex)
{
string meg = ex.Message.ToString();
}
}
}
}
return _instance;
}
具体哪句报错?什么错?
你怎么会想起来在客户端调用这个类呢?wcf不能远程调用那些无法通过序列化传输的对象,而且你的整个思路都错了。
你应该在服务器端就把业务逻辑做好,客户端调用服务器上的业务,而不是通过服务器直接操作数据库。