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
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.
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);