奇怪的,找不到类型或命名空间 问题。

qufo 2007-09-20 05:32:14
一个解决方案,名叫 OBF
里面两个项目,一个是 WebService ,(OBFService.cs) , 一个 winform 的项目,就叫 OBF
在 WebService(OBFService.cs)中,定义了如下几个类,每个类一个文件。
限于篇幅,只列出前面一些内容。



----- OBFUser.cs ---------------------------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

/// <summary>
/// OBFUser 的摘要说明
/// </summary>

public class OBFUser
{
private int _userid;
private string _username;
.............
}


----OBFHeader.cs (SoapHeader 验证用)---------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.Services;
using System.Web.Services.Protocols;


/// <summary>
/// OBFHeader 的摘要说明
/// </summary>

public class OBFHeader : SoapHeader
{
private int _userid;
private string _username;
............
}



-------OBFService.cs(web service 的 cs 文件)------------------------------
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "OBF")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class OBFService : System.Web.Services.WebService
{
private OBFHeader _header;

public OBFHeader Header
{
get
{
return _header;
}
set
{
_header = value;
}
}


public OBFService () {

//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}

[WebMethod]
public string HelloWorld() {
return "Hello World";
}
............
}



----------
就这么些东西。


然后,在 winform 里,我建立了一个 web 引用,名字叫 WS

并且,创建了一个用于存放公用信息(全局变量)的cs文件。
-----Pub.cs----------------------
using System;
using System.Collections.Generic;
using System.Text;
using OBF.WS;


class Pub
{
private static OBFUser m_CurrentUser;

private static OBFService m_ws;

private static OBFHeader m_header; // <-- 此处的 OBFHeader 报错,找不到类型或命名空间

...........
}


这里 OBFUser , OBFService 都可以自由地引用,为什么偏偏 OBFHeader 无法引用呢?
...全文
246 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2007-09-21
  • 打赏
  • 举报
回复
soapheaer不是这么用滴
qufo 2007-09-21
  • 打赏
  • 举报
回复
提有一下,看有没有别的什么解决方案。
xiangquriben 2007-09-20
  • 打赏
  • 举报
回复
11
qufo 2007-09-20
  • 打赏
  • 举报
回复
如果我没有记错的话,如果没有指定命名空间的话,就不需要引用命名空间,所有的东西都在一个默认的命名空间之下(可以这么理解)。

再说,如果是引用命名空间的问题,那,为什么OBFUser可以引用呢?


我有重新加载过 web ,甚至为此关机重启过,一样的错误。

OBFHeader 并没有引用任何的特殊 dll ,除了新建工程的时候 Visual studio 2005 自己引入的之外。


错误的堤示是说命名空间或类型没有找到,但实际上呢,如果正如错误所言,报错的不止 OBFHeader这一个,而是 OBFUser也会报错才对。

OBFHeader 是继承 自 SoapHeader 的,因为是一个 SoapHeader 类,跟这个有没有关系呢?

明天我去重写一次试试。

treesky 2007-09-20
  • 打赏
  • 举报
回复
namespaece
virusswb 2007-09-20
  • 打赏
  • 举报
回复
这个提示很明显了,肯定是命名空间的问题,引用的问题
MaybeHelios 2007-09-20
  • 打赏
  • 举报
回复
注意引用dll
None465465535 2007-09-20
  • 打赏
  • 举报
回复
重新加载Web引用试试
湖中仙人 2007-09-20
  • 打赏
  • 举报
回复
uppp
北京的雾霾天 2007-09-20
  • 打赏
  • 举报
回复
怎么看不到namespace的定义呢。
liujiayu10 2007-09-20
  • 打赏
  • 举报
回复
引用了吗
clever_zhu_fei 2007-09-20
  • 打赏
  • 举报
回复
问题应该出在命名空间上,你在看看

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧