在C#中访问/创建多个文件中一个类的对象

时间:2014-12-17 01:49:16

标签: c# asp.net

我有几个课可以说,

public class A
{
    public string Date { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Link { get; set; }
    public string Document { get; set; }
}

public class B
{
    public string Fixes { get; set; }
    public string Date { get; set; }
    public string Link { get; set; }
    public string Document { get; set; }
}

我在两个文件(Webforms)中使用这两个类,如下所示。

var allVars= (from p in doc.Elements("Patches").Elements("Patch").Elements("Fix")
                      select new B
                      {
                          Fixes = p.Value,
                          Date = (p.Parent.Attribute("date") == null) ? "NA" : p.Parent.Attribute("date").Value,
                          Link = (p.Attribute("Ticket") == null) ? "" : p.Attribute("Ticket").Value,
                          Document = (p.Attribute("Document") != null) ? p.Attribute("Document").Value : ""
                      }
                          );

 var allVariables= (from f in doc.Elements("Features").Elements("Feature")
                       select new A
                       {
                           Date=(f.Parent.Attribute("date") == null) ? "NA" : f.Parent.Attribute("date").Value,
                           Name = f.Attribute("name").Value,
                           Description = f.Value,
                           Link = f.Attribute("Ticket").Value,
                           Document = (f.Attribute("Document") != null) ? f.Attribute("Document").Value : null
                       });

因此,在我的应用程序中,在多个webforms(Partial classes)中使用了这样的clases。而不是在每个类中单独定义它们。我希望他们定义一次并在任何文件中使用它们就像那样。我确信C#会有这样的机制,但我无法回忆起功能名称以及如何重用它。

有人能告诉我这是怎么回事。

1 个答案:

答案 0 :(得分:0)

将它定义为这两个类中的静态函数:



public class A
{
    public string Date { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Link { get; set; }
    public string Document { get; set; }
public static dynamic Get A()
{

var allVariables= (from f in doc.Elements("Features").Elements("Feature")
                       select new A
                       {
                           Date=(f.Parent.Attribute("date") == null) ? "NA" : f.Parent.Attribute("date").Value,
                           Name = f.Attribute("name").Value,
                           Description = f.Value,
                           Link = f.Attribute("Ticket").Value,
                           Document = (f.Attribute("Document") != null) ? f.Attribute("Document").Value : null
                       });
return allVariables;

}
}


public class B
{
    public string Fixes { get; set; }
    public string Date { get; set; }
    public string Link { get; set; }ynamig
    public string Document { get; set; }
public static dynamic getB()
{
var allVars= (from p in doc.Elements("Patches").Elements("Patch").Elements("Fix")
                      select new B
                      {
                          Fixes = p.Value,
                          Date = (p.Parent.Attribute("date") == null) ? "NA" : p.Parent.Attribute("date").Value,
                          Link = (p.Attribute("Ticket") == null) ? "" : p.Attribute("Ticket").Value,
                          Document = (p.Attribute("Document") != null) ? p.Attribute("Document").Value : ""
                      }
                          );

return allVars;
}

}




然后你可以从你的页面调用这些函数:

A.getA()

B.getB()