Search Results

Search found 1575 results on 63 pages for 'reflection'.

Page 26/63 | < Previous Page | 22 23 24 25 26 27 28 29 30 31 32 33  | Next Page >

  • What is the most efficient way of associating information with a Type in .Net?

    - by Miguel Angelo
    I want to associate custom data to a Type, and retrieve that data in run-time, blasingly fast. This is just my imagination, of my perfect world: var myInfo = typeof(MyClass).GetMyInformation(); this would be very fast... of course this does not exist! If it did I would not be asking. hehe ;) This is the way using custom attributes: var myInfo = typeof(MyClass).GetCustomAttribute("MyInformation"); this is slow because it requires a lookup of the string "MyInformation" This is a way using a Dictionary<Type, MyInformation: var myInfo = myInformationDictionary[typeof(MyClass)]; This is also slow because it is still a lookup of 'typeof(MyClass)'. I know that dictionary is very fast, but this is not enough... it is not as fast as calling a method. It is not even the same order of speed. I am not saying I want it to be as fast as a method call. I want to associate information with a type and access it as fast as possible. I am asking whether there is a better way, or event a best way of doing it. Any ideas?? Thanks!

    Read the article

  • Open generic interface types of open implementation don't equal interface type?

    - by George Mauer
    Here's a test that should, in my opinion be passing but is not. [TestMethod] public void can_get_open_generic_interface_off_of_implementor() { typeof(OpenGenericWithOpenService<>).GetInterfaces().First() .ShouldEqual(typeof(IGenericService<>)); } public interface IGenericService<T> { } public class OpenGenericWithOpenService<T> : IGenericService<T> { } Why does this not pass? Given Type t = typeof(OpenGenericWithOpenService<>) how do I get typeof(IGenericService<)? I'm generally curious, but if you're wondering what I'm doing, I'm writing a Structuremap convention that forwards all interfaces implemented by a class to the implementation (as a singleton).

    Read the article

  • how to get a constant in java with class

    - by vincent
    basically I need to get a constant for a class however I have no instance of the object but only its class. In PHP I would do constant(XYZ); Is there a similar way of retrieving a constant in JAVA? I need it to facilitate a dynamic getMethod call Class parameterType = Class.forName(class_name); object.setProperty(field name, field value, parameterType); the set property method would then get the correct method and set the specified property, however I cant get a method which has int as parameter type without using Interger.TYPE

    Read the article

  • Get PropertyInfo from property instead of name

    - by Sam
    Say, for example, I've got this simple class: public class MyClass { public String MyProperty { get; set; } } The way to get the PropertyInfo for MyProperty would be: typeof(MyClass).GetProperty("MyProperty"); This sucks! Why? Easy: it will break as soon as I change the Name of the Property, it needs a lot of dedicated tests to find every location where a property is used like this, refactoring and usage trees are unable to find these kinds of access. Ain't there any way to properly access a property? Something, that is validated on compile time? I'd love a command like this: propertyof(MyClass.MyProperty);

    Read the article

  • [dynamic] Different behaviours between .NET 4.0 beta 2 and last release of .NET 4.0 !

    - by yogi4ever
    Hi. I've identified a difference of DLR between .NET 4.0 Beta 2 and the last release of .NET 4.0. In .NET 4.0 Beta 2, this code perfectly works at runtime : var dateTimeList = new List(); dynamic myDynamicObject = dateTimeList; object value = DateTime.Now; myDynamicObject.Add(value); Now, with last release of .NET 4.0, I have an exception at run time (to solve myDynamicObject.Add(value);) :-( In my real code, 'myDynamicObject' is a dynamic (but I know that it is always an ObservableCollection where T can be anything). 'value' is an instance which was got by some reflexions. As 'value' can have any type, the type of 'value' is Object. Do you see how can I solve this new limitation of .NET 4.0 ? Thanks

    Read the article

  • Better code for accessing fields in a matlab structure array?

    - by John
    I have a matlab structure array Modles1 of size (1x180) that has fields a, b, c, ..., z. I want to understand how many distinct values there are in each of the fields. i.e. max(grp2idx([foo(:).a])) The above works if the field a is a double. {foo(:).a} needs to be used in the case where the field a is a string/char. Here's my current code for doing this. I hate having to use the eval, and what is essentially a switch statement. Is there a better way? names = fieldnames(Models1); for ix = 1 : numel(names) className = eval(['class(Models1(1).',names{ix},')']); if strcmp('double', className) || strcmp('logical',className) eval([' values = [Models1(:).',names{ix},'];']); elseif strcmp('char', className) eval([' values = {Models1(:).',names{ix},'};']); else disp(['Unrecognized class: ', className]); end % this line requires the statistics toolbox. [g, gn, gl] = grp2idx(values); fprintf('%30s : %4d\n',names{ix},max(g)); end

    Read the article

  • Getting a Type variable knowing the name of type C#

    - by StuffHappens
    Hello! I'm developing a TypeTranslator class which has a method Type TranslateType(Type type). This method gets a type of an interface and if there's a class of interface name without leading I it creates it, otherwise an exception is raised. Here's some code to clearify what's written before: class Program { interface IAnimal { } class Animal : IAnimal { } void Function() { TypeTranslator typeTranslator = new TypeTranslator(); Assert(typeTranslator.TranslateType(typeof(IAnimal) == typeof(Animal))); } } Is it possible to get what I want? Thank you for your help!

    Read the article

  • Why Use java.lang.reflect.Array For Anything Other Than Array Creation?

    - by dimo414
    Java Class java.lang.reflect.Array provides a set of tools for creating an array dynamically. However in addition to that it has a whole set of methods for accessing (get, set, and length) an array. I don't understand the point of this, since you can (and presumably would) cast your dynamically generated array as an array upon creation, which means you can use the normal array access (bracket notation) functionality. In fact, looking at the source code you can see that is all the class does, cast the array, and throw an exception if the cast fails. So what's the point / usefulness of all of these extra methods?

    Read the article

  • Tracing all events in VB.NET

    - by MatsT
    I keep running into situations where I don't know what event I have to listen to in order to execute my code at the correct time. Is there any way to get a log of all events that is raised? Any way to filter that log based on what object raised the event? EDIT: Final solution: Private Sub WireAllEvents(ByVal obj As Object) Dim parameterTypes() As Type = {GetType(System.Object), GetType(System.EventArgs)} Dim Events = obj.GetType().GetEvents() For Each ev In Events Dim handler As New DynamicMethod("", Nothing, parameterTypes, GetType(main)) Dim ilgen As ILGenerator = handler.GetILGenerator() ilgen.EmitWriteLine("Event Name: " + ev.Name) ilgen.Emit(OpCodes.Ret) ev.AddEventHandler(obj, handler.CreateDelegate(ev.EventHandlerType)) Next End Sub And yes, I know this is not a good solution when you actually want to do real stuff that triggers off the events. There are good reasons for the 1 method - 1 event approach, but this is still useful when trying to figure out which of the methods you want to add your handlers to.

    Read the article

  • How to extract object reference from property access lamda

    - by Jim C
    Here's a follow-up question to http://stackoverflow.com/questions/2820660/get-name-of-property-as-a-string. Given a method Foo (error checking omitted for brevity): // Example usage: Foo(() => SomeClass.SomeProperty) // Example usage: Foo(() => someObject.SomeProperty) void Foo(Expression<Func<T>> propertyLambda) { var me = propertyLambda.Body as MemberExpression; var pi = me.Member as PropertyInfo; bool propertyIsStatic = pi.GetGetMethod().IsStatic; object owner = propertyIsStatic ? me.Member.DeclaringType : ???; ... // Execute property access object value = pi.GetValue(owner, null); } I've got the static property case working but don't know how to get a reference to someObject in the instance property case. Thanks in advance.

    Read the article

  • Mysterious newInstance method

    - by songsungkyun
    First I show some code. library: axis.jar, dom4j.jar jdk1.5, windowsXP T.java import java.io.StringWriter; import org.apache.axis.utils.StringUtils; import org.dom4j.DocumentHelper; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class T { public T() { System.out.println("constructor"); } public void test() { System.out.println(StringUtils.unescapeNumericChar("1")); } public String getPrettyXML(String xml) throws Exception { System.out.println("getPrettyXML"); StringWriter sw = new StringWriter(); XMLWriter writer = null; try { OutputFormat format = OutputFormat.createPrettyPrint(); org.dom4j.Document document = DocumentHelper.parseText(xml); writer = new XMLWriter(sw, format); writer.write(document); } catch (Exception e) { throw e; } finally { if (writer != null) { try { writer.close(); } catch (Exception e) { } } } return sw.toString(); } public void a() { System.out.println("a"); } public static void main(String[] args) { new T().test(); } } T2.java public class T2 { public static void main(String[] args) throws Exception { System.out.println("T2"); T t = (T) Class.forName("T").newInstance(); } } Ok, here we go... run as (Of course, I'm run at the directory where T.class, T1.class is) java T2 as you can see, not exist class path. ==console== T2 constructor OK... Now delete throw e line at the catch block on the "getPrettyXML" method of T. Ok, here we go.. run one more time without classpath java T2 You can see below... ==console== T2 Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/io/OutputFormat at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at T2.main(T2.java:5) I know that it's not very important for my life or your life. But it's so mysterisou to me, and my all curiosity. thanks.. ^^

    Read the article

  • Getting the type of a parametrized class parameter?

    - by GuidoMB
    I have the following class public class MyClass<T> { public Class<T> getDomainClass() { GET THE CLASS OF T } } I've googled this problem and all the answers I could find told me to use getGenericSuperClass(), but the problem of this method is that I must have a second class that extends MyClass and I don't want to do this. What I need is to get the parametrized type of a concrete class?

    Read the article

  • How to discover getters and setters on hibernate objects

    - by Michael Jones
    I need to find a way of taking a hibernate object and discovering at runtime all of the getter methods that relate to persistable fields. I'm using annotations in the classes but have previously had difficulties working with them (I ran into a 2 year old bug the java developers still haven't fixed). Does anyone know how I can do this please, ideally without using annotations? Thanks. PS - What I'm trying to do here is to update a new object with values from an existing object dynamically.

    Read the article

  • Why is my Type.GetFields(BindingFlags.Instance|BindingFlags.Public) not working?

    - by granadaCoder
    My code can see the non-public members, but not the public ones. Why? FieldInfo[] publicFieldInfos = t.GetFields(BindingFlags.Instance | BindingFlags.Public); is returning nothing. Note: I'm trying to get at the properties on the abstract class as well as the concrete class. (And read the attributes as well). The MSDN example works with the 2 flags (BindingFlags.Instance | BindingFlags.Public) but my mini inheritance example below does not. private void RunTest1() { try { textBox1.Text = string.Empty; Type t = typeof(MyInheritedClass); //Look at the BindingFlags *** NonPublic *** int fieldCount = 0; while (null != t) { fieldCount += t.GetFields(BindingFlags.Instance | BindingFlags.NonPublic).Length; FieldInfo[] nonPublicFieldInfos = t.GetFields(BindingFlags.Instance | BindingFlags.NonPublic); foreach (FieldInfo field in nonPublicFieldInfos) { if (null != field) { Console.WriteLine(field.Name); } } t = t.BaseType; } Console.WriteLine("\n\r------------------\n\r"); //Look at the BindingFlags *** Public *** t = typeof(MyInheritedClass); FieldInfo[] publicFieldInfos = t.GetFields(BindingFlags.Instance | BindingFlags.Public); foreach (FieldInfo field in publicFieldInfos) { if (null != field) { Console.WriteLine(field.Name); object[] attributes = field.GetCustomAttributes(t, true); if (attributes != null && attributes.Length > 0) { foreach (Attribute att in attributes) { Console.WriteLine(att.GetType().Name); } } } } } catch (Exception ex) { ReportException(ex); } } private void ReportException(Exception ex) { Exception innerException = ex; while (innerException != null) { Console.WriteLine(innerException.Message + System.Environment.NewLine + innerException.StackTrace + System.Environment.NewLine + System.Environment.NewLine); innerException = innerException.InnerException; } } public abstract class MySuperType { public MySuperType(string st) { this.STString = st; } public string STString { get; set; } public abstract string MyAbstractString { get; set; } } public class MyInheritedClass : MySuperType { public MyInheritedClass(string ic) : base(ic) { this.ICString = ic; } [Description("This is an important property"), Category("HowImportant")] public string ICString { get; set; } private string _oldSchoolPropertyString = string.Empty; public string OldSchoolPropertyString { get { return _oldSchoolPropertyString; } set { _oldSchoolPropertyString = value; } } [Description("This is a not so importarnt property"), Category("HowImportant")] public override string MyAbstractString { get; set; } }

    Read the article

  • Getting the type of an array of T, without specifying T - Type.GetType("T[]")

    - by Merlyn Morgan-Graham
    I am trying to create a type that refers to an array of a generic type, without specifying the generic type. That is, I would like to do the equivalent of Type.GetType("T[]"). I already know how to do this with a non-array type. E.g. Type.GetType("System.Collections.Generic.IEnumerable`1") // or typeof(IEnumerable<>) Here's some sample code that reproduces the problem. using System; using System.Collections.Generic; public class Program { public static void SomeFunc<T>(IEnumerable<T> collection) { } public static void SomeArrayFunc<T>(T[] collection) { } static void Main(string[] args) { Action<Type> printType = t => Console.WriteLine(t != null ? t.ToString() : "(null)"); Action<string> printFirstParameterType = methodName => printType( typeof(Program).GetMethod(methodName).GetParameters()[0].ParameterType ); printFirstParameterType("SomeFunc"); printFirstParameterType("SomeArrayFunc"); var iEnumerableT = Type.GetType("System.Collections.Generic.IEnumerable`1"); printType(iEnumerableT); var iEnumerableTFromTypeof = typeof(IEnumerable<>); printType(iEnumerableTFromTypeof); var arrayOfT = Type.GetType("T[]"); printType(arrayOfT); // Prints "(null)" // ... not even sure where to start for typeof(T[]) } } The output is: System.Collections.Generic.IEnumerable`1[T] T[] System.Collections.Generic.IEnumerable`1[T] System.Collections.Generic.IEnumerable`1[T] (null) I'd like to correct that last "(null)". This will be used to get an overload of a function via reflections by specifying the method signature: var someMethod = someType.GetMethod("MethodName", new[] { typeOfArrayOfT }); // ... call someMethod.MakeGenericMethod some time later I've already gotten my code mostly working by filtering the result of GetMethods(), so this is more of an exercise in knowledge and understanding.

    Read the article

  • C# eval equivalent?

    - by Adhip Gupta
    I can do an eval("something()"); to execute the code dynamically in JavaScript. Is there a way for me to do the same thing in C#? What I am exactly trying to do is that I have an integer variable (say i) and I have multiple properties by the names: "Property1","Property2","Property3" etc. Now, I want to perform some operations on the " Propertyi " property depending on the value of i. This is really simple with Javascript. Is there any way to do this with C#? Edit: Oh, and I am using C# 2.0

    Read the article

  • Magic Method __set() on a Instanciated Object

    - by streetparade
    Ok i have a problem, sorry if i cant explaint it clear but the code speaks for its self. i have a class which generates objects from a given class name; Say we say the class is Modules: public function name($name) { $this->includeModule($name); try { $module = new ReflectionClass($name); $instance = $module->isInstantiable() ? $module->newInstance() : "Err"; $this->addDelegate($instance); } catch(Exception $e) { Modules::Name("Logger")->log($e->getMessage()); } return $this; } The AddDelegate Method: protected function addDelegate($delegate) { $this->aDelegates[] = $delegate; } The __call Method public function __call($methodName, $parameters) { $delegated = false; foreach ($this->aDelegates as $delegate) { if(class_exists(get_class($delegate))) { if(method_exists($delegate,$methodName)) { $method = new ReflectionMethod(get_class($delegate), $methodName); $function = array($delegate, $methodName); return call_user_func_array($function, $parameters); } } } The __get Method public function __get($property) { foreach($this->aDelegates as $delegate) { if ($delegate->$property !== false) { return $delegate->$property; } } } All this works fine expect the function __set public function __set($property,$value) { //print_r($this->aDelegates); foreach($this->aDelegates as $k=>$delegate) { //print_r($k); //print_r($delegate); if (property_exists($delegate, $property)) { $delegate->$property = $value; } } //$this->addDelegate($delegate); print_r($this->aDelegates); } class tester { public function __set($name,$value) { self::$module->name(self::$name)->__set($name,$value); } } Module::test("logger")->log("test"); // this logs, it works echo Module::test("logger")->path; //prints /home/bla/test/ this is also correct But i cant set any value to class log like this Module::tester("logger")->path ="/home/bla/test/log/"; The path property of class logger is public so its not a problem of protected or private property access. How can i solve this issue? I hope i could explain my problem clear.

    Read the article

  • Getting set accessor for property in abstract class, not possible?

    - by Lars Udengaard
    Given the class': public abstract class AbstractEntity { public virtual Guid Id { get; private set; } } public class Entity { public virtual Guid Id { get; private set; } } And a PropertyInfo for the property 'Id'. When calling the method: PropertyInfo.GetAccessors() It returns both the get-method and the set-method when the class is not abstract (Entity), but only the get-method when the class is abstract (AbstractEntity). Why is this? And is there another way to get the set-method from a property with a private set?

    Read the article

  • How to tell Reflectively if an Attribute has a public Setter

    - by DrLazer
    Im saving an object model out to XML but when i load it back in I get exceptions when trying to use PropertyInfo.SetValue() because the property doesn't have a setter just a getter. I want to either not save out the properties that only have getters or figure out on load whether its valid for me to try and set a value or not. Anybody know how to do this Cheers

    Read the article

  • Get derived class type from a base's class static method

    - by Marco Bettiolo
    Hi, i would like to get the type of the derived class from a static method of its base class. How can this be accomplished? Thanks! class BaseClass { static void Ping () { Type t = this.GetType(); // should be DerivedClass, but it is not possible with a static method } } class DerivedClass : BaseClass {} // somewhere in the code DerivedClass.Ping();

    Read the article

  • C#, get all collection properties from an object

    - by Eatdoku
    Hi, I have a class with 3 List collections like the following. I am trying to have a logic which will iterate through the object's "collection" properties and do some operation using the data stored in those collections. I am just wondering if there is an easy way of doing it using foreach. thanks public class SampleChartData { public List<Point> Series1 { get; set; } public List<Point> Series2 { get; set; } public List<Point> Series3 { get; set; } public SampleChartData() { Series1 = new List<Point>(); Series2 = new List<Point>(); Series3 = new List<Point>(); } }

    Read the article

  • Fast check if an object will be successfully instantiated in PHP?

    - by Gremo
    How can I check if an object will be successfully instantiated with the given argument, without actually creating the instance? Actually I'm only checking (didn't tested this code, but should work fine...) the number of required parameters, ignoring types: // Filter definition and arguments as per configuration $filter = $container->getDefinition($serviceId); $args = $activeFilters[$filterName]; // Check number of required arguments vs arguments in config $constructor = $reflector->getConstructor(); $numRequired = $constructor->getNumberOfRequiredParameters(); $numSpecified = is_array($args) ? count($args) : 1; if($numRequired < $numSpecified) { throw new InvalidFilterDefinitionException( $serviceId, $numRequired, $numSpecified ); }

    Read the article

< Previous Page | 22 23 24 25 26 27 28 29 30 31 32 33  | Next Page >