高难度的问题,微软居然没有开放这个功能
自己实现了一个窗体设计器,现在可以进入设计模式,拖动控件并设置属性,这些都没问题了
现在的关键问题是需要实现一个CodeDomDesignerLoader,这个类主要实现两个功能,通过CSharpCodeProvider把设计器的CodeCompileUnit对象生成C#代码,和加载C#代码还原为CodeCompileUnit对象
第一个功能没有问题,CSharpCodeProvider提供了GenerateCodeFromCompileUnit方法,可以生成标准的C#代码
第二个功能就郁闷了,CSharpCodeProvider居然没有实现Parse方法!一看说明文档才知道微软并没有实现这个方法,需要用户自己去实现,而微软肯定是实现了这个方法的,不然他自己的VS怎么识别?只是没有放在.netframework中,微软也真是的,把事情干一半,然后说另一半你来搞定,操
我用的是.netframework2.0,哪位用过3.0或3.5的,看看这个方法实现了没有?
要是真的自己实现这个方法,会出人命的,复杂的字符串分析,整个一个语法分析器啊,网上找了一些代码研究,都是上万行的代码量,晕死
或者有没有其他的方法可以绕过语法分析,可以把运行时的对象转换成CodeCompileUnit