Tag: reflection

Javareflection:创build一个实现类

Class someInterface = Class.fromName("some.package.SomeInterface"); 我现在如何创build一个实现someInterface的新类? 我需要创build一个新的类,并将其传递给需要一个SomeInterface作为参数的函数。

如何在C#中传递一个函数作为参数?

是否有可能在C#中传递一个函数作为参数? 我可以使用Func或Action类来完成,但这迫使我一次声明整个函数签名。 当我尝试使用委托,我得到一个编译错误,说它不能将方法组转换为委托。 我正在使用Axial ,我试图让用户调用Web服务。 我要去的是能够创buildVisual Studio代理类,然后传入生成的函数。 函数签名并不重要,因为生成的代码只使用函数名称。 然而,我想传递的function,而不是名称有两个原因:能够使用代理的URL属性和编译器错误,如果Web服务不存在或在Visual Studio中更新。 public void AlertIt(object o) { Axial.DOM.Window.Alert(o.ToString()); } public void CallAddService() { object[] param = new object[] { int.Parse(txtA.Text), int.Parse(txtB.Text) }; Axial.ServerScript.CallWebService(new WSProxy.WS().Add, param, AlertIt, AlertIt); } class Axial.ServerScript { public void CallWebService(Delegate method, object[] param, Action<object> successCallback, Action<object> failureCallback) { // translate to javascript (already […]

从String获取类的types

我有一个String ,其名称为"Ex" (没有.class扩展名)。 我想把它分配给一个Classvariables,如下所示: Class cls = (string).class 我怎样才能做到这一点?

reflection速度有多慢

我最近创build了一个接口层来区分DataAccessProvider和业务逻辑层。 通过这种方法,我们可以通过更改Web / App.Config中的值来随时更改DataAccessProvider的select。 (如果需要,可以提供更多的细节)。 无论如何,要做到这一点,我们使用reflection来完成我们可以工作的DataProvider类。 /// <summary> /// The constructor will create a new provider with the use of reflection. /// If the assembly could not be loaded an AssemblyNotFoundException will be thrown. /// </summary> public DataAccessProviderFactory() { string providerName = ConfigurationManager.AppSettings["DataProvider"]; string providerFactoryName = ConfigurationManager.AppSettings["DataProviderFactory"]; try { activeProvider = Assembly.Load(providerName); activeDataProviderFactory = (IDataProviderFactory)activeProvider.CreateInstance(providerFactoryName); […]

如何通过reflection来判断一个方法是否返回“void”

我有一个java.lang.reflect.Method对象,我想知道它是否返回types是void 。 我已经检查了Javadocs,并且有一个返回Class对象的getReturnType()方法。 问题是,如果方法是无效的,他们不会说什么是返回types。 谢谢!

通过类的reflection属性获取,而不是从inheritance类获取

class Parent { public string A { get; set; } } class Child : Parent { public string B { get; set; } } 我只需要得到财产乙,没有财产甲但是 Child.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance) 返回两个属性:/

获得Type的默认构造函数的最有效的方法

什么是最有效的方式来获取System.Type的默认构造函数(即没有参数的实例构造函数)? 我正在考虑下面的代码,但似乎应该有一个更简单,更有效的方法来做到这一点。 Type type = typeof(FooBar) BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance; type.GetConstructors(flags) .Where(constructor => constructor.GetParameters().Length == 0) .First();

在运行时更改属性的参数

我不确定是否可以在运行时更改属性的参数? 例如,在一个程序集中,我有以下类 public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } } 这是由第三方供应商提供的类, 我不能更改代码 。 但是现在我发现上面的描述是不准确的,当我将上面的类的实例绑定到属性网格时,我想将“改变我”类别名称更改为别的东西。 我可以知道如何做到这一点?

获取标记某个属性的所有属性

那里有class级和财产。 一些属性可以被标记属性(这是我的LocalizedDisplayName从DisplayNameAttributeinheritance)。 这是获取类的所有属性的方法: private void FillAttribute() { Type type = typeof (NormDoc); PropertyInfo[] propertyInfos = type.GetProperties(); foreach (var propertyInfo in propertyInfos) { … } } 我想添加标记LocalizedDisplayName和列表框中的属性显示值的列表框中的类的属性。 我怎样才能做到这一点? 编辑 这是LocalizedDisplayNameAttribute: public class LocalizedDisplayNameAttribute : DisplayNameAttribute { public LocalizedDisplayNameAttribute(string resourceId) : base(GetMessageFromResource(resourceId)) { } private static string GetMessageFromResource(string resourceId) { var test =Thread.CurrentThread.CurrentCulture; ResourceManager manager = new […]

实例化types参数的对象

我有一个模板类如下: class MyClass<T> { T field; public void myMethod() { field = new T(); // gives compiler error } } 如何在我的课堂上创build一个新的T实例?