大侠,帮帮忙,asp.net的知识。。

happy_to_you 2012-09-14 03:09:39
公司有人这样写代码,不知道啥个意思?
[DataMember]
public static int ID{set;get;}
[OperationContract]
void singText(string str);

我想知道写出中括号里面的那个,是什么意思,谢谢了。。。。
...全文
183 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangserver 2012-09-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

那我问下,通常用这些中括号有什么作用呢?
[/Quote]

装逼用
happy_to_you 2012-09-17
  • 打赏
  • 举报
回复
那我问下,通常用这些中括号有什么作用呢?
xiongxyt2 2012-09-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
公司有人这样写代码,不知道啥个意思?
[DataMember]
public static int ID{set;get;}
[OperationContract]
void singText(string str);

我想知道写出中括号里面的那个,是什么意思,谢谢了。。。。
[/Quote]

你们公司用了wcf吧,你说的两个都是wcf里面的特性,建议你看看wcf里面的相关知识。
亡魂葬爱 2012-09-17
  • 打赏
  • 举报
回复
特性,加了特性有些功能才能实现,如序列化一个类
zhujiazhi 2012-09-17
  • 打赏
  • 举报
回复

在DataContractSerializer进行序列化/反序列化的时候会用的,
没有这个标记貌似不会参与序列化/反序列化
  • 打赏
  • 举报
回复
[DataMember]
public static int ID{set;get;}
//设置字段类型
就像
[Required]是必须字段


[OperationContract]
void singText(string str);
//设置函数类型
就像
[HTTPPOST] 跟[GRIDACTION]
Banianer 2012-09-14
  • 打赏
  • 举报
回复
对于类似于这样的说明标记[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethod
Type.Delete, true)]
该标记不起任何实际作用,仅是告诉vs该语句下面的方法(Method)是ObjectDataSource的默认绑定方法

标记的作用是为了让编译器更好的为ObjectDatasource向导找到合适的方法


下面的代码示例演示如何将 DataObjectMethodAttribute 属性应用于一个公共公开的方法,并标识该方法所执行的数据操作类型及该方法是否是该类型的默认数据方法。在此示例中,NorthwindData 类型公开两个数据方法:一个方法名为 GetAllEmployees,用于检索一组数据;另一个方法名为 DeleteEmployeeByID,用于删除数据。将 DataObjectMethodAttribute 属性同时应用于这两个方法,将 GetAllEmployees 方法标记为“Select”数据操作的默认方法,将 DeleteEmployeeByID 方法标记为“Delete”数据操作的默认方法。
C#
复制代码
[DataObjectAttribute]
public class NorthwindData
{
public NorthwindData() {}

[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
public static IEnumerable GetAllEmployees()
{
AccessDataSource ads = new AccessDataSource();
ads.DataSourceMode = SqlDataSourceMode.DataReader;
ads.DataFile = "~//App_Data//Northwind.mdb";
ads.SelectCommand = "SELECT EmployeeID,FirstName,LastName FROM Employees";
return ads.Select(DataSourceSelectArguments.Empty);
}

// Delete the Employee by ID.
[DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
public void DeleteEmployeeByID(int employeeID)
{
throw new Exception("The value passed to the delete method is "
+ employeeID.ToString());
}
}

解释一下各位对于那些方括号的疑问,那个东西叫做Attribute(中文不知道该翻译成什么比较合适),主要是反射的时候用,本文中的这些Attribute非常的简单,仅仅是告诉反射的用户这个方法是干什么用的,以及是不是默认使用这个方法(似乎有些拗口,我们还是举例子吧)

e.g.
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public Northwind.ProductsDataTable GetProducts()
{
return Adapter.GetProducts();
}
其中,System.ComponentModel.DataObjectMethodType.Select说明这是一个用于Select的方法,true说明这是默认的用于Select的方法

所以,相对的
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
public Northwind.ProductsDataTable GetProductByProductID(int productID)
{
return Adapter.GetProductByProductID(productID);
}
就说明这是一个用于Select的方法,但是它不是默认的用于Select的方法


需要说明的是,上面所讨论的System.ComponentModel.DataObjectMethodAttribute是针对ProductsBLL而言的,也就是说当反射ProductsBLL的时候,这些东西就可以用了(注意:ProductsBLL是被标记为System.ComponentModel.DataObject的一个类,所以才可以用这些Attribute,否则会出问题的)

再简要的说明一下“反射”,我们在往设计器里面添加一个控件后,都可以使用属性窗口,这个属性窗口里面能显示这个控件的一些相关的东西,这个就是反射一种用法

62,165

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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