我有
windows手机应用程序;当我运行应用程序时,我得到了这个异常并且它不再运行了
A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in System.Windows.ni.dll
错误发生在intializecomponent()中的app.xaml文件中;方法
public App() { // Global handler for uncaught exceptions. UnhandledException += Application_UnhandledException; // Standard XAML initialization InitializeComponent(); // Phone-specific initialization InitializePhoneApplication();
由于我在添加应用程序资源时发生错误
<converter:RssTextTrimmer xmlns:converter="clr-namespace:HomePage" x:Key="RssTextTrimmer" />
当我删除它时,应用程序运行良好.
以下是完整代码:
<Application x:Class="HomePage.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"> <!--Application Resources--> <Application.Resources> <local:LocalizedStrings xmlns:local="clr-namespace:HomePage" x:Key="LocalizedStrings"/> <converter:RssTextTrimmer xmlns:converter="clr-namespace:HomePage" x:Key="RssTextTrimmer" /> </Application.Resources> <Application.ApplicationLifetimeObjects> <!--Required object that handles lifetime events for the application--> <shell:PhoneApplicationService Launching="Application_Launching" Closing="Application_Closing" Activated="Application_Activated" Deactivated="Application_Deactivated"/> </Application.ApplicationLifetimeObjects>
转换器代码
命名空间HomePage
{
class RssTextTrimmer:IValueConverter
{
// Clean up text fields from each SyndicationItem. public object Convert(object value,Type targetType,object parameter,CultureInfo culture) { if (value == null) return null; int maxLength = 200; int strLength = 0; string fixedString = ""; // Remove HTML tags and newline characters from the text,and decodes HTML encoded characters. // This is a basic method. Additional code would be needed to more thoroughly // remove certain elements,such as embedded Javascript. // Remove HTML tags. fixedString = Regex.Replace(value.ToString(),"<[^>]+>",string.Empty); // Remove newline characters fixedString = fixedString.Replace("\r","").Replace("\n",""); // Remove encoded HTML characters fixedString = HttpUtility.HtmlDecode(fixedString); strLength = fixedString.ToString().Length; // Some feed management tools include an image tag in the Description field of an RSS feed,// so even if the Description field (and thus,the Summary property) is not populated,it could still contain HTML. // Due to this,after we strip tags from the string,we should return null if there is nothing left in the resulting string. if (strLength == 0) { return null; } // Truncate the text if it is too long. else if (strLength >= maxLength) { fixedString = fixedString.Substring(0,maxLength); // Unless we take the next step,the string truncation could occur in the middle of a word. // Using LastIndexOf we can find the last space character in the string and truncate there. fixedString = fixedString.Substring(0,fixedString.LastIndexOf(" ")); } fixedString += "..."; return fixedString; } // This code sample does not use TwoWay binding and thus,we do not need to flesh out ConvertBack. public object ConvertBack(object value,CultureInfo culture) { throw new NotImplementedException(); } }
}
解决方法
在您的RssTextTrimmer.cs文件中,确保该类是公共的 “公共课RssTextTrimmer:IValueConverter” 不 “class RssTextTrimmer:IValueConverter” 这就是我的烦恼
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。