注入

注入主要是为多个类调用同一个类中的方法,而被调用的类必须只创建一个对象,把这个创建的对象同时注入需要调用此对象的各个类,这样就实现了其他不同的类访问了同一个类的方法。例如:

public partial class MainForm 
{
        private DALSACamera _camera;
        private IOControl _iOControl;
        private IOConfig _iOConfig;
        private TriggerModeCB _frmConfigOne;
        public MainForm()
        {
            InitializeComponent();
            _mainForm = this;
            _camera = new DALSACamera();//要被注入的类                           
            _iOControl = new IOControl();
            _iOConfig = new IOConfig();
        }
        private void menu_btn_config1_ItemClick(object sender, ItemClickEventArgs e)
        {
            XtraMdiTabPage tabPage = GetTabPage(s_configone);
            if (tabPage != null)
            {
                xtraTabbedMdiManager1.SelectedPage = tabPage;
                _frmConfigOne.Show();
            }
            else
            {
                _frmConfigOne = new TriggerModeCB(); //需要注入的类
                _frmConfigOne.MdiParent = this;
                _frmConfigOne.Show();
            }
            _frmConfigOne.set(_camera);//把_camera注入 
            } 
}

需要注入及被注入的类都需要先创建个对象

下面为需要注入类中的注入方法

public partial class TriggerModeCB : Form
    {
        DALSACamera _dALSACamera;
        private void WAConfigOne_Load(object sender, EventArgs e)
        {
            //_main = this.ParentForm as MainForm;
        }
        public TriggerModeCB()
        {
            InitializeComponent();
        }
        public void set(DALSACamera a)  //注入方法
        {
            _dALSACamera = a;
        }
    }

下面就可以通过_dALSACamera来调用DALSACamera类中的方法

posted @ 2021-05-21 10:12  TONEY|Tang  阅读(434)  评论(0)    收藏  举报