C# Structure - Access class from external library

纵然是瞬间 提交于 2019-12-06 14:03:06

A very common way to externalize part of the code is by using interfaces.

A simple example is:

//CalculatorInterface.dll
namespace Calculator.Interface
{
    interface ICalculator
    {
        int DoCalculus(List<object> list);
    }
}

//CalculatorImplementation_1.dll
//  Add a reference to CalculatorInterface.dll
namespace Calculator.Implementation
{
    using Calculator.Interface;

    class CalculatorImplementation_1 : ICalculator
    {
        public int DoCalculus(List<object> list)
        {
            int result = 0;

            foreach (Object obj in list)
            {
                if (obj is int)
                {
                    result += (int)obj;
                }
            }

            return result;
        }
    }
}

//Calculator.dll
//  Add a reference to CalculatorInterface.dll
//  Add a reference to CalculatorImplementation_1.dll (or dynamically load it)
namespace Calculator
{
    using Calculator.Interface;
    using Calculator.Implementation;

    class MyCalculator
    {
        void CalculateSomething()
        {
            List<Object> list = new List<Object>();
            list.Add(1);
            list.Add(2);
            list.Add("SomeString");

            ICalculator calculator = new CalculatorImplementation_1();

            int result = calculator.DoCalculus(list);

            Console.Write(result);
        }
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!