如何理解C#类型?

时间:2012-07-19 09:13:45

标签: c# xml code-generation

我在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内置类型与否?

1 个答案:

答案 0 :(得分:2)

如果是代码生成,请使用XML的第二次传递来了解是否存在第一遍中已读取的复杂类型。这通常是代码生成器的工作方式。

通过观察价值,确实没有明确的方法来决定尝试。 我的意思是说“stering”可能是一个字符串或一个枚举。因此,您必须添加一些逻辑来决定应该生成什么。