Tag: interface implementation

我可以全局设置要使用的接口实现吗?

我有一个界面: public interface IHHSDBUtils { void SetupDB(); bool TableExists(string tableName); . . . ……有多个实施者: public class SQLiteHHSDBUtils : IHHSDBUtils public class SQCEHHSDBUtils : IHHSDBUtils public class FlatfileHHSDBUtils : IHHSDBUtils public class TestHHSDBUtils : IHHSDBUtils 我希望能够从全局可访问的位置指定要使用的实施者,例如: public static class HHSConsts { public static IHHSDBUtils hhsdbutil = SQLiteHHSDBUtils; …然后从app中的任何地方调用它: private HHSDBUtils hhsdbutils { get; set; } . […]

从加载的程序集中查找实现接口的对象 – 如何比较类型?

我有一个类将加载目录中的所有程序集,然后获取所有类型,看看它们是否实现了一个接口。 我无法进行类型比较。 在调试器中,如果总是未通过比较,我会看到我的类型已加载(我感兴趣的那个)。 如果我在本地使用相同的比较代码,我没有问题,我得到了预期的结果。 我可以在类型接口上进行sting比较,但我更愿意知道我做错了什么。 测试: // Fails [Fact] public void FindISerialPortTest() { var path = Directory.GetCurrentDirectory(); var results = FindImplementers.GetInterfaceImplementor(path); results.Length.Should().Be(1); results[0].Should().BeAssignableTo(); } //Passes [Fact] public void DoesTypeImplementInterfaceTest() { var myType = typeof(SerialPortWrapper); var myInterface = typeof(ISerialPort); FindImplementers.DoesTypeImplementInterface(myType, myInterface).Should().Be(true); } class级: public class FindImplementers { public static T[] GetInterfaceImplementor(string directory) { if (String.IsNullOrEmpty(directory)) { […]