我正在尝试将基于richtextbox控件的Intellisense添加到C#代码编辑器中.到目前为止,我已经解析了输入的文本以查找所有变量及其类型(效果很好).下拉框效果很好.我无法得到的是下拉列表框的正确选项列表.
如何以编程方式获取以下列表:
我已经编译了变量及其类型的列表,所以当用户按下时.
我知道我有一个c
类型的变量Color
.我只需要知道要调用哪个函数来获取下拉框所需的列表.
我尝试过这段代码:http://www.codeproject.com/KB/cs/diy-intellisense.aspx但无法使其正常工作.我还在StackOverflow上阅读了大量其他线程但无济于事.我真的想完成这个而不是使用别人的插件编辑器组件.
任何提示将不胜感激.谢谢.
如果您知道该类型,您应该能够反思该类型并获得所需的所有信息。
Type.GetMembers可能是您最好的选择。您可能还需要第二次调用才能获取任何静态方法:
var instanceMembers = typeof(Color)
.GetMembers(BindingFlags.Instance | BindingFlags.Public);
var staticMembers = typeof(Color)
.GetMembers(BindingFlags.Static | BindingFlags.Public);
Run Code Online (Sandbox Code Playgroud)
每个 MemberInfo 对象都能够告诉您 MemberType(属性、字段、方法、事件等)
instanceMembers
只需在用户键入变量(如c
您的示例中)时使用,.
然后使用 ,并staticMembers
在用户键入类型名称(如Color
您的示例中)时使用 ,然后使用.
。
归档时间: |
|
查看次数: |
1438 次 |
最近记录: |