类结构中的类使用细节

时间:2017-03-01 20:28:50

标签: c# asp.net class

我对System.Web.Security命名空间中的MembershipMembershipUser类有疑问。

这两个类都存在于不同的库中,如何在不通过任何文档和类方法,属性等的情况下知道使用细节?如果我遇到MembershipUser类我会知道有一个Email属性我可以获取和设置,但我不知道有一个Membership类有返回用户详细信息的方法如MembershipUser返回类型而没有以某种方式遇到它。

例如要获取用户电子邮件地址,我们可以创建MembershipUser对象并使用GetUser()类提供的Membership方法,因为GetUser()的返回类型为Membership。这样的事情。

MembershipUser user = Membership.GetUser();    
string Email = user.Email;

MembershipUser Class:

public class MembershipUser
{
  ...
  public virtual string Email { get; set; }
  ...
}

会员级别:

public static class Membership
{
  ...
  public static MembershipUser GetUser();
  ...
}

1 个答案:

答案 0 :(得分:3)

我认为你可能正在寻找一种通过返回类型"找到方法。 Visual Studio中的工具,允许您说" .net库中的哪些方法返回此类型",或者特别是在您的示例中#34;哪些方法返回类型MembershipUser的对象&# 34 ;?

据我所知,VS并没有这种设施,但ReSharper扩展确实如此。如果你有ReSharper,你可以右键单击一个类型,然后选择"查找高级用法"然后选择"解决方案和库"选项和"用法"和"会员的用法":

Resharper Find Usages Advanced Dialog Window

点击“查找”以获得如下列表:

RESharper Find Usages search results

如您所见,该列表包含结果中的GetUser函数。

This answer还提到Reflector扩展名作为替代选项。

正如其他人所说,没有什么可以替代您阅读计划使用的图书馆的文档。图书馆作者可以直截了当地描述特定方法的工作原理(在使用该库时在智能感知中可见的代码注释中),但尝试描述不同类的交互方式通常是不切实际的。在那些评论中。

在编写类时,通常不会知道各个部分之间的交互方式,并且编写良好的代码会故意设法将类保持良好分离,以便以后可以以新的方式使用它们。因此,图书馆作者描述图书馆各个元素互动的唯一实际地点在于其文档。