c# 将属性扩展到另一个项目的类

问题描述 投票:0回答:1

我有两个项目,其中一个项目被添加作为对另一个项目的引用以使用一些函数和类..

我如何使用主项目中存在的一些新属性/字段扩展原始类并在第二个项目中使用它?

如果它在同一个项目中,我可以像这样扩展它

public class ClassA
{
    public string Name{ get; set; }
    public string Phone{ get; set; }

}

public class ClassB : ClassA
{
    public int id{ get; set; }
    public string someField{ get; set; }

}

我只需要在项目2中使用ClassB中的字段,并向对象添加一些值

List<ProjectA.ClassA> data = await SomeFunction();
data.ForEach(x =>
{
    x.id= 1;
    x.someField = "some value";
});

我在主项目中有很多课程,我想在第二个项目中用新课程扩展所有课程

c# asp.net-core-webapi visual-studio-2022
1个回答
0
投票

SomeFunction 返回 ClassB 类型的对象列表,对吗?如果要访问 ClassB 类型的属性,您的列表必须是 ClassB 类型。我不建议进行类型转换,因为当返回的对象类型不正确时,它可能会失败。

如果您只迭代数据,则可以使用 IEnumerable,这是所有集合都实现的接口。

IEnumerable<ClassB> data = await SomeFunction();
data.ForEach(x =>
{
    x.id= 1;
    x.someField = "some value";
});

如果 SomeFunction 只返回 ClassA 类型的对象,你的代码将永远无法工作。

© www.soinside.com 2019 - 2024. All rights reserved.