首页 > 解决方案 > 我正在尝试将记录插入到对象列表中,但是当我调用该方法时没有插入任何内容。我究竟做错了什么?

问题描述

我正在尝试使用一种方法将数据插入到列表中,但是在调用该方法后,我尝试插入的内容没有显示出来。有人可以告诉我我做错了什么吗?我打电话给 InsertMedicationOrder。

    private List<Medication> Meds;

    private List<MedOrder> MedOrder_;

    public FakeMedicationAccessor()
    {  
        MedOrder_ = new List<MedOrder>() 
        { 
            new MedOrder(){}
        };
    }

    public int InsertMedicationOrder(int orderID, int employeeID, int itemID, string itemName, int quantity)
    {
        MedOrder_.Add(GetMedicationOrder(orderID, employeeID, itemID, itemName, quantity));

        return 0;
    }

    public MedOrder GetMedicationOrder(int orderID, int employeeID, int itemID,string itemName, int quantity)
    {
        return new MedOrder
        {
            outgoingOrderID = orderID,
            employeeID = employeeID,
            itemID = itemID,
            itemName = itemName,
            quantityOrdered = quantity,
            itemCategoryID = "Medication"
        };
    }

该方法被传递到这里-

public bool CreateMedicationOrder(int orderID, int employeeID, int itemID, string itemName, int quantity)
{
    bool result = false;
    try
    {
        result = (1 == _activityAccessor.InsertMedicationOrder(orderID, employeeID, itemID, itemName, quantity));
    }
    catch (System.ApplicationException ex)
    {
        throw new ApplicationException("Meds not ordered", ex);
    }
    return result;
}

并在这里调用

public void OrderMedications() 
{
    _medicationManager = new MedicationManager();
    int orderID = 1;
    int employeeID = 66;
    int itemID = 1;
    string itemName = "Med_A";

    _medicationManager.CreateMedicationOrder(orderID, employeeID, itemID, itemName, Int32.Parse(Quantity_input.Text));
}

FakeMedicationAccessor 的实例化

  private IMedicationAccessor _activityAccessor;


    public MedicationManager()
    {
        _activityAccessor = new FakeMedicationAccessor();

    }

    public MedicationManager(IMedicationAccessor MedicationManager)
    {
        _activityAccessor = MedicationManager;

    }

标签: c#

解决方案


请尝试使用 MedicationManager 类的单例实例。每次您创建 MedicationManager 类的对象时,该对象将依次创建 FakeMedicationAccessor 类的新实例。

    public void OrderMedications() 
    {
        if(_medicationManager == null)
        {
            _medicationManager = new MedicationManager();
        }
        int orderID = 1;
        int employeeID = 66;
        int itemID = 1;
        string itemName = "Med_A";

        _medicationManager.CreateMedicationOrder(orderID, employeeID, itemID, itemName, Int32.Parse(Quantity_input.Text));
    }

无论您在何处创建 MedicationManager 的新实例,都执行该空检查


推荐阅读