【问题标题】:Load Array values values from Controller: MVC WInforms从控制器加载数组值:MVC WInforms
【发布时间】:2012-08-16 14:20:18
【问题描述】:

我正在处理来自this website 的 MVC 模式 Winforms 示例项目

程序.cs

static void Main()
        {

            UserView view = new UserView();
            view.Visible = false;

            UserController controller =  new UserController(view, listLoad());
            controller.LoadView();
            view.ShowDialog();
        }

 private static IList listLoad()
        {
            var users = new ArrayList();
            users.Add(new User("Vladimir", "Putin", "122", "Government of Russia", User.SexOfPerson.Male));

            return users;
        }

 public  void SaveXML()
        {
            XmlSerializer serializer = new XmlSerializer(_users.GetType());

            using (FileStream fileStream = new FileStream(@"C:\test\Users.xml", FileMode.Create))
            {
                serializer.Serialize(fileStream, _users);
            }
        }

上面的代码有什么问题?

问题 1:如何从控制器添加用户值,而不是从 program.cs 文件 IList users = new ArrayList(); 加载?

问题 2:我想将列表的所有行保存到一个 XML 文件中,最好的方法是什么??

【问题讨论】:

    标签: c# xml winforms model-view-controller


    【解决方案1】:

    当您说从控制器添加用户值时,您到底是什么意思?你能不能在控制器上没有一个名为“AddUsers”的方法来做到这一点?我很感激您必须阻止 IList _users 只读才能这样做,但是...

    至于写入 XML 文件,我认为最好的方法是 XML 序列化。为此,您可能希望在控制器中执行以下操作:

    XmlSerializer serializer = new XmlSerializer(_users.GetType());            
    
    using (FileStream fileStream = new FileStream("Users.xml", FileMode.Create))
    {
        serializer.Serialize(fileStream, _users);
    }
    

    【讨论】:

    • :我在program.cs文件中做了一点改动。我有一种加载新用户值的方法。我想在控制器中有一个方法并在 program.cs 文件中调用该方法。我该怎么做??
    • 对不起,我有点糊涂了,你想要控制器中的一个方法来调用 Program.cs 中的私有 listLoad() 方法吗?
    • 不,我怎样才能在某些方法中加载控制器中的所有值并在 program.cs 文件中调用该方法?我在保存 XML 文件时遇到问题?。
    • 我不知道为什么它抱怨那个 Xml 序列化......当我试图在我的代码中做同样的事情时,我也得到了这个。一种解决方法是使用 List _users = new List();而不是 IList _users = new ArrayList();。然而,让序列化工作的最后一步是向 User 类添加一个无参数的构造函数……你能做到吗?关于您想从程序的主要区域添加用户...我不确定我是否理解您为什么要这样做...当我查看代码时,这没有多大意义代码项目。
    • 根据您的建议,我在模型中创建了一个空构造函数并将数组更改为列表...最后一切正常。
    猜你喜欢
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多