调用FileHelperEngine构造函数时,PresentationFramework.dll中的XamlParseException

时间:2013-08-01 12:07:36

标签: c# wpf filehelpers visual-studio-2013

  

类型的第一次机会异常   ' System.Windows.Markup.XamlParseException'发生在   PresentationFramework.dll
  附加信息:'调用   类型' filehelpertest.MainWindow'上的构造函数匹配的   指定的绑定约束引发了异常。'行号' 3'和   行位置' 9'。

大家好,

我是FileHelpers的新手。

我在VS Express 2013中制作了一个最小的WPF项目,以便解决这个问题。 代码将从他们的"快速启动分隔文件" FileHelpers文档中的部分。

我尝试引用3个不同版本的FileHelpers.dll(2.0,1.1,Mono1.2),我尝试重启。但是我看不到任何影响。我必须有一些非常简单的东西吗?

或者FileHelpers不适用于较新版本的.NET吗?

谢谢!

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using FileHelpers;

namespace filehelpertest
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            FileHelperEngine engine = new FileHelperEngine(typeof(Customer));
            // To Read Use:
            Customer[] res = engine.ReadFile("f1.txt") as Customer[];
            // To Write Use:
            engine.WriteFile("f2.txt", res);
        }

        [DelimitedRecord(",")]  
        public class Customer
        {
            public int CustId;
            public string Name;
        }
    }
}

2 个答案:

答案 0 :(得分:14)

我的问题的解决方案与XAML Parse Exception - xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

上接受的答案相同

我做了CTRL-ALT-E然后检查了一切。现在,弹出窗口显示实际异常,而不是xamlparseexception。

答案 1 :(得分:1)

我认为问题在于路径,提供引擎的完整路径并使用类似的通用版本:

   public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            try
            {
              var engine = new FileHelperEngine<Customer>();
              // To Read Use:
              Customer[] res = engine.ReadFile(@"c:\yourpath\f1.txt");
              // To Write Use:
              engine.WriteFile(@"c:\yourpath\f2.txt", res);
            }
            catch(Exception ex)
            {
              MessageBox.Show(ex.Message);
            }
        }
    }