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

本文关键字:一个 对象 访问 文件 创建 | 更新日期: 2023-09-27 18:34:22

我有几个类,让我们说,

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
                       });

因此,在我的应用程序中的多个网络表单(分部类)中,这些分支是这样使用的。而不是在每个类中单独定义它们。我希望他们定义一次并在任何文件中使用它们,就像那样。我确信 C# 会有一些这样的机制,但我不记得功能名称以及如何重用它。

有人可以让我知道这是怎么可能的。

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

在这两个类中将其定义为静态函数:

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()