未找到“名称”的定义

本文关键字:定义 名称 | 更新日期: 2023-09-27 17:56:26

我在命名空间中定义了一个类:

namespace Artworking
{
    public class Category
    {
        int ID {get;set;}
        string Name {get;set;}
        public Category(int ID, string Name)
        {
            this.ID = ID;
            this.Name = Name;
        }
        public Category(int ID)
        {
            using (CrystalCommon.MainContext db = new CrystalCommon.MainContext())
            {
                var q = (from c in db.tblArtworkTemplateCategories where c.ID == ID select c).SingleOrDefault();
                this.ID = q.ID;
                this.Name = q.CatName;
            }
        }
    }
}

在我的内容页面上,我从另一个函数获取所有类别,并将它们添加到列表框控件:

        // Category select
        Artworking.Category[] Cats = Artworking.CommonFunctions.FetchAllCategories(Master.LoggedInUser.Client.ID);
        foreach(Artworking.Category C in Cats){
            ListItem NewItem = new ListItem();
            NewItem.Text = C.Name;
            NewItem.Value = C.ID;
            CategorySelect.Items.Add(NewItem);
        }

但是,由于某种原因,它在NewItem.Text = C.Name行上抛出:

CS1061:"艺术品类别"没有 包含"名称"的定义,但不包含 扩展方法"名称"接受 类型的第一个参数

我对这个有点困惑,我认为这一切都定义正确了?

可以找到"艺术品类别" (您是否缺少使用指令或 程序集引用?

未找到“名称”的定义

您仍然需要在 Category 类中的属性声明之前添加public

你的属性Name应该标记为publicID应该基于你尝试在类外访问它的事实。

public class Category
{
    public int ID { get;set; }
    public string Name { get;set; }
    ....
}

另一个小建议 - 为什么不通过 using 语句在代码中引用 Artworking 命名空间?这将使您的代码更整洁,而不必在多行中不断键入完整的命名空间:

using Artworking;
// Category select
Category[] Cats = CommonFunctions.FetchAllCategories(Master.LoggedInUser.Client.ID);
foreach(Category C in Cats)
{
    ....
}