使用反射(我猜?),是否可以创建一个方法来返回从名为IBlahblah的接口继承的所有对象的集合?
public interface IBlahblah;
Run Code Online (Sandbox Code Playgroud) 两者Queue和ConcurrentQueue实施IEnumerable但不是IAsyncEnumerable。NuGet 上是否有可用的标准类或类来实现IAsyncEnumerable,如果队列为空,则在将MoveNextAsync下一个添加到队列之前,结果不会完成?
我能找到的最接近这个问题的是:获得实现接口的所有类型
但这是用于代码,并使用它我必须更改代码,重新编译和运行.我想知道是否有一种更简单的方法可以查找实现某个接口的所有类.
我似乎经常面对这个问题,我正在寻找一些更简单/更通用的方法来找到我的答案.最近我想找出我可以使用哪些类实现ISet,对我来说无关紧要,只需要一个用来创建实例的类.
所以我想知道是否有任何方法可以找到实现给定接口的所有类?
谢谢,杰夫
这可能在C#中像是Java吗?
如果我有一个接口名称(参数IDataReader),我如何获得实现这个的所有类的列表?
在java中,它在API中列出 - 这在C#中是否可用
这可能是一个愚蠢的问题,但我正在开发一个组件,我有一个类具有如下属性的类
public class Grid()
{
..
public IDecorator Decorator { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是让用户以下列方式指定自己的实现IDecorator的自定义类
...BuildGrid(
grid=>{
..
grid.Decorator = [CustomNameSpace].[DecoratorClass]
//as in
grid.Decorator = Com.MyCompany.DivDecorator
..
});
Run Code Online (Sandbox Code Playgroud)
Com.MyCompany.DivDecorator实现了IDecorator接口.那么我应该如何在没有最终用户指定"new"关键字的情况下执行此操作
grid.Decorator = new Com.MyCompany.DivDecorator();
Run Code Online (Sandbox Code Playgroud)
我知道我在这里错过了一些关键的c#概念.
谢谢
[编辑]
我试图做像这里的Java DisplayTag库这样的事情
http://www.displaytag.org/1.2/tut_decorators.html
他们这样做的方式是
... decorator="org.displaytag.sample.Wrapper"
所以我想而不是
public IDecorator Decorator { get; set;}
Run Code Online (Sandbox Code Playgroud)
我应该做
public String Decorator (get; set;}
Run Code Online (Sandbox Code Playgroud)
然后在内部使用TypeOf()来解决它....只是想知道是否有任何其他方式优雅地在C#中执行它.
谢谢
目前我有一个像这样的类列表:
public List<Algo> AlgoList = new List<Algo>
{
new BastionAlgo(),
new BitcoreAlgo(),
new Blake2SAlgo(),
new BlakeAlgo(),
new BlakeCoinAlgo(),
new BmwAlgo(),
new C11FlaxAlgo(),
new CryptolightAlgo(),
new CryptonightAlgo(),
...
};
Run Code Online (Sandbox Code Playgroud)
当我添加和删除类时,我宁愿不必维护一个长列表.有没有办法找到并实例化在.net核心2中扩展另一个类的所有类?
提前谢谢你的帮助.
c# ×5
.net ×1
.net-core ×1
asynchronous ×1
inheritance ×1
oop ×1
queue ×1
razor ×1
reflection ×1