我在python中编写了一个代码,它读取包含用户定义类型和用户类定义的XML数据模型,然后转换为C#类。
例如,用户创建此XML文件:
<app:list name="myList" itemType="strering">
<app:restriction combination="any">
<app:minSize>1</app:minSize>
</app:restriction>
</app:list>
我的应用程序会将其转换为C#代码:
private System.Collections.Generic.List<strering> _myList;
public System.Collections.Generic.List<strering> myList {
get{ return _myList; }
set{
if (_myList == value)
return;
if ((value.Count>=1) || false){
_myList=value;
}
else {
throw new Exception("Inserted value for myList is not valid!");
}
RaisePropertyChanged ("myList"); // for binding to mvvm model
}
}
如果 strering 在XML文件中定义,那么我的应用程序可以在符号表中找到它并将其传递到另一个级别,但我的问题是如何理解用户输入的列表类型是.Net内置类型与否?
答案 0 :(得分:2)
如果是代码生成,请使用XML的第二次传递来了解是否存在第一遍中已读取的复杂类型。这通常是代码生成器的工作方式。
通过观察价值,确实没有明确的方法来决定尝试。 我的意思是说“stering”可能是一个字符串或一个枚举。因此,您必须添加一些逻辑来决定应该生成什么。