今天用VS2010写了一个类库,然后把它生成为一个dll组件。但是我在其他解决方案里面引用了这个组件之后,写了using语句之后却一直提示错误,未能找到命名空间或类型。后来我有重新生成了几次,又重新引用,结果还是一样
解决方案 »
- 到底是C++快还是C#速度快?
- Dundas Chart 用法,谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
- vs2005怎么在服务器资源管理器中加入oracle 10g(急急急)
- c#序列化和反序列化内部实现原理
- 大家一般是怎么创建数据访问层的?
- 高分求助~~~~~~~~SmartClient问题!
- DataGrid邦定的数据中某列数据长度比较长,客户想全部显示内容,该怎么办呢???
- 请问这两者有何不同?
- 大疑问!!!!!如何自定义一个控件的事件?可以在外部应用它?
- C#源程序和书籍下载的好地方
- 如何通过反射的方式取得属性标签,比如:Browsable
- Entity Framework数据库连接符问题
如果你是在web-asp.net服务器控件中开发的 生成通过后 VS2010会把生成成功的组件自动加载到同一解决方案项目的工具栏中
其次 你说你引用了这个组件? 你确定引用好了 一般引用进去了 using 是可以出来的
你再仔细检查下看看
编写DLL的组件是(.NET Netframework 4) 右击项目属性-应用程序引用DLL的项目是(.NET Netframework 4 Client Profile) 右击项目属性-应用程序,把两个改成一样就可以了.
NET Netframework 4比.NET Netframework 4 Client Profile大
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;namespace TP_Client
{
class TransferParameters_Client
{
public DataTable TPC_Obj(object[,] param)
{
int col_num = param.GetLength(0);
string[] col_name = new string[col_num];
int row_num = param.GetLength(1);
DataTable dt_CanShu = new DataTable();
for (int i = 0; i < col_num; i++)
{
if (param[i, 0] == null)
{
continue;
}
else
{
col_name[i] = Convert.ToString(param[i, 0]);
}
}
for (int i = 0; i < col_num; i++)
{
if (param[i, 0] == null)
{
continue;
}
else
{
dt_CanShu.Columns.Add(col_name[i], System.Type.GetType("System.Object"));
}
}
for (int j = 1; j < row_num; j++)
{
DataRow dr = dt_CanShu.NewRow();
for (int k = 0; k < col_num; k++)
{
if (param[k, 1] == null)
{
continue;
}
else
{
dr[col_name[k]] = param[k, 1];
}
}
dt_CanShu.Rows.Add(dr);
}
return dt_CanShu;
}
}
}以上是这个组件的源代码,
不是用asp.net写的,我检查过生成方法了,应该没错,因为我之前也用过同样地方法成功生成并可引用组件
还有回复4楼,我按你的说法来做了,重新生成组件后还是这个问题
dll和你引用的地方有可能不在同一命名空间还有出现LZ类似的错误的原因:
没有在项目的引用中添加dll所在的类名
我在项目的引用中添加dll所在的类库名,也就是(TP_Client)
至于“dll和你引用的地方有可能不在同一命名空间”不太懂?可以详细指点一下吗?
class TransferParameters_Client改为:
public class TransferParameters_Client