Getting value of IronRuby object's property using reflections

hi All,

I’m having the ruby class of following structure. I need to gets its
value using reflection that it need to get its value using Property
Descriptor or PropertyInfo collection. I can get this only when I use
the attributes. If I have the object without any attributes its
returning the public methods of the Ruby object. I need to get the
properties using Property Descriptor, when there is no attributes in the
object.

Please share your Idea this is important for my project.

Thanks.
Sri

Class Structure

class Person

def name
    @name
end

def name=(n)
    @name = n
end

def age
    @age
end

def age=(a)
    @age = a
end

end

Would this be what you need?
http://ironruby.codeplex.com/workitem/4920

Tomas

Hi Tomas,

Yes exactly the same. I need to get those methods as property in C#. Do
you have any idea to achieve this?

Thanks,
Sri.

Hi Jimy,

Thanks for the information. But I need to use the .Net reflection API.
I’m trying to do something with the ruby object in my WPF control. So I
can’t use Ruby reflection API, I can get just a Ruby object I need to
manipulate that with the help of Reflection API.

-Sri.

Hi Sri,

What is it that you are ultimately trying to accomplish? Are you wanting
to
bind a control to the Ruby object?

-Charles

On Wed, Apr 27, 2011 at 4:30 AM, sridharans sivamurugan <

On Tue, Apr 26, 2011 at 1:06 AM, sridharans sivamurugan
[email protected] wrote:

Thanks,
Sri.

Sri, do you actually need to use .NET Reflection APIs? If so, then
your Ruby class would have to inherit from an interface where the
properties you’d want to reflect over are defined. However, I highly
doubt that you absolutely need to use .NET’s reflection; you just want
to find the method names available on a Ruby object, correct? Ruby
itself has it’s own reflection capabilities built into the language
(Persion.instance_methods), and the DLR hosting API lets you use C# to
access Ruby-defined entities; take a look at the methods on
ScriptEngine.Operations to see what you need to do from C#;
GetMemberNames might be useful to you. You could also write the
reflection code in Ruby and pass the result back to C#:

var personMethods = engine.Execute(“Person.instance_methods -
Object.instance_methods”, someScope);

~Jimmy

Hi Charles,

I’m trying to get the value of the Iron Ruby objects using
reflection(using Property Descriptor). This is my ultimate need.

-Sri.