首页 \ 问答 \ 解组到LinkedList Jaxb的列表(Unmarshal list to LinkedList Jaxb)

解组到LinkedList Jaxb的列表(Unmarshal list to LinkedList Jaxb)

如何在解组列表时指定集合实现。 对于某些实体列表,我更喜欢使用LinkedList,但jaxb为适当的元素生成ArrayList。 是否有最简单的方法为List <>指向集合Impl?

    @XmlRootElement(name = "column")
    public class Column {

    @XmlElement(name = "property")
    public List<Property> properties;

    @XmlElement(name = "list-property")
    public List<ListProperty> listProperties;
}

        <column>
            <list-property name="a">...</list-property>
            <list-property name="b">...</list-property>
            <property name="width">10</property>
            <property name="height">20</property>
        </column>

    public Column getObject(File file) {
    try {
        JAXBContext jc = JAXBContext.newInstance(Column.class);
        Unmarshaller unmarshaller = jc.createUnmarshaller();
        return (Column) unmarshaller.unmarshal(file);
    } catch (JAXBException jex) {
        throw new RuntimeException("Object parse was fail", jex);
    }
}

How I can specify collection implementation when unmarshalling list. For some list of entities I prefer to use LinkedList, but jaxb makes ArrayList for appropriate elements. Is there simplest way to point collection Impl for List<>?

    @XmlRootElement(name = "column")
    public class Column {

    @XmlElement(name = "property")
    public List<Property> properties;

    @XmlElement(name = "list-property")
    public List<ListProperty> listProperties;
}

.

        <column>
            <list-property name="a">...</list-property>
            <list-property name="b">...</list-property>
            <property name="width">10</property>
            <property name="height">20</property>
        </column>

.

    public Column getObject(File file) {
    try {
        JAXBContext jc = JAXBContext.newInstance(Column.class);
        Unmarshaller unmarshaller = jc.createUnmarshaller();
        return (Column) unmarshaller.unmarshal(file);
    } catch (JAXBException jex) {
        throw new RuntimeException("Object parse was fail", jex);
    }
}

原文:https://stackoverflow.com/questions/44654938
更新时间:2021-08-09 14:08

最满意答案

private async void LoadImageAsync(object sender, System.Windows.RoutedEventArgs e)
{
    await Task.Delay(100);
    var senderItem = sender as Image;

    if (senderItem != null)
    {
        var dataContext = senderItem.DataContext as FileDto;
        if (dataContext != null)
        {
            if (!string.IsNullOrEmpty(dataContext.ImageUrl))
            {
                var fullFilePath = dataContext.ImageUrl;

                BitmapImage bitmap = new BitmapImage();
                bitmap.BeginInit();
                bitmap.UriSource = new Uri(fullFilePath, UriKind.Absolute);
                bitmap.EndInit();

                senderItem.Source = bitmap;
            }
        }

    }

}

我在图像控件的Loaded事件异步上加载图像。 它非常快,只使用一点内存和处理器。


private async void LoadImageAsync(object sender, System.Windows.RoutedEventArgs e)
{
    await Task.Delay(100);
    var senderItem = sender as Image;

    if (senderItem != null)
    {
        var dataContext = senderItem.DataContext as FileDto;
        if (dataContext != null)
        {
            if (!string.IsNullOrEmpty(dataContext.ImageUrl))
            {
                var fullFilePath = dataContext.ImageUrl;

                BitmapImage bitmap = new BitmapImage();
                bitmap.BeginInit();
                bitmap.UriSource = new Uri(fullFilePath, UriKind.Absolute);
                bitmap.EndInit();

                senderItem.Source = bitmap;
            }
        }

    }

}

I load images on the image control's Loaded event async. Its's very quick and use only a little memory and processor.

相关问答

更多
  • 我用Qt和C ++和WPF。 我更喜欢WPF作为用户界面框架。 Qt并不差,特别是4.0后。 我甚至都不会碰Qt的早期版本。 正如其他人在评论中所说的,WPF有更好的文档记录,并且在线社区更大。 如果您正在寻找样式化的应用程序,那么WPF肯定是最好的选择。 Qt的新声明式语言是这条道路上的一个很好的步骤,但是因为它太新了,所以它往往有点bug。 WPF已经有了更长的时间,并且功能更加成熟和丰富。 但是,我认为你的情况下真正的问题是你拥有的c ++代码库。 WPF将需要一个C ++ / CLI层(托管C ++ ...
  • System.Drawing.Image是WinForms,而不是WPF。 你的ByteToImage方法应该返回BitmapSource 。 从字节数组创建BitmapSource最简单方法是BitmapFrame.Create : public BitmapSource ByteArrayToImage(byte[] buffer) { using (var stream = new MemoryStream(buffer)) { return BitmapFrame.C ...
  • private async void LoadImageAsync(object sender, System.Windows.RoutedEventArgs e) { await Task.Delay(100); var senderItem = sender as Image; if (senderItem != null) { var dataContext = senderItem.DataContext as FileDto; if ...
  • 您可以直接绑定到由Visual Studio创建的静态对象。 在你的Windows声明中添加: xmlns:p="clr-namespace:UserSettings.Properties" 其中UserSettings是应用程序命名空间。 然后你可以添加绑定到正确的设置: ...
  • 我想你只是想在DataGrid中的视图模型的代码源集合属性中显示字符串。 然后,您应该将DataGrid的ItemsSource属性绑定到视图模型的代码源属性,然后将DataGridTextColumn绑定到代码列表本身的字符串。 您只需修改视图的XAML标记以查看字符串。 尝试这个:
  • 请在线查看答案。 主要问题是转换器已将所有类型推断调用( Dim variable = ... )转换为动态,这是不正确的。 你应该使用var来进行类型推断。 private void Aberdeen() { if (TXTCounty.Text == "Aberdeen") { Microsoft.Maps.MapControl.WPF.Location[] CountyLocation = new Microsoft.Maps.MapControl.WPF.Location[ ...
  • 据我了解,你想从后面的代码添加数据网格列,该专栏应该与绑定..? 这里是示例代码片段,用于从代码后面添加datagrid列 var col = new DataGridTextColumn(); col.Header = "d"; col.Binding = new Binding("RoomNumber"); dataGrid1.Columns.Add(col); 通过这种方法,您可以根据需要添加任意数量的列,并且可以在运行时为每 ...
  • 这是一个似乎已经完成的网站,但它只是0.5版本,并可能在1.0之前发生显着变化: http://leandrovieira.com/projects/jquery/lightbox/# 这应该是你正在寻找的东西,下面是他们的代码示例来实现: $(function() { $('#gallery a').lightBox({fixedNavigation:true}); }); 我希望这有帮助, 谢谢! 编辑: 对不起,我没有完全理解你的问题的第一个版本。 以下是针对您的问题的更新答案(附带代码/来 ...
  • 您可以使用BitmapImage.DecodePixelHeight或BitmapImage.DecodePixelWidth以较低的质量渲染图像,并根据对话框的大小进行优化。 在XAML中它看起来像这样: So there app ...
  • Binding mybinding = new Binding(); mybinding.Path.Path = "ActualWidth"; mybinding.ElementName = "img" Mytarget.SetBinding(MYTARGET.WidthProperty, mybinding); MYTARGET是类, Mytarget是对象名。 Binding mybinding = new Binding(); mybinding.Path.Path = "ActualWidth"; ...

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)