小编wiz*_*rdz的帖子

在C#中将字符串转换为XmlNode的更好方法


我想将一个字符串(显然是一个xml)转换为C#中的XmlNode.虽然在网上搜索我得到了这个代码.我想知道这是否是一个将字符串转换为XmlNode的好方法?我必须在循环中预先形成这种转换,它是否会导致任何性能问题?

        XmlTextReader textReader = new XmlTextReader(new StringReader(xmlContent));
        XmlDocument myXmlDocument = new XmlDocument();
        XmlNode newNode = myXmlDocument.ReadNode(textReader);
Run Code Online (Sandbox Code Playgroud)

请回复,

谢谢
Alex

c# xml

42
推荐指数
1
解决办法
7万
查看次数

什么是面向数据的编程?

任何人都可以向我解释

  1. 什么是面向数据的编程?
  2. 面向数据的编程和函数式编程是一样的吗?
  3. 面向对象的编程与面向对象的编程有何不同?
  4. 在什么情况下我们选择面向对象编程语言的面向数据的编程语言?

paradigms programming-languages

21
推荐指数
2
解决办法
2万
查看次数

尝试在C#中使用XmlDocument的'InsertBefore'时发生异常


我试图在另一个xmlnode之前插入一个xml节点,我有一个例外,说"参考节点不是这个节点的子节点".

这是我的初始xml:

<?xml version="1.0" encoding="utf-8" ?>
<Details xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <sampleData>
    <otherNodes></otherNodes>
  </sampleData>
</Details>
Run Code Online (Sandbox Code Playgroud)

我想插入下面的XML DATAS(B:dataTobeInserted1,B:dataTobeInserted2和b:dataTobeInserted3)作为的子细节,但之前的sampleData.

Details1.xml

<?xml version="1.0" encoding="utf-8" ?>
<DataInserted1 xmlns:b="http://example.com/data">
  <b:dataTobeInserted1>
    <b:otherDetails1></b:otherDetails1>
  </b:dataTobeInserted1>
</DataInserted1>
Run Code Online (Sandbox Code Playgroud)

Details2.xml

<?xml version="1.0" encoding="utf-8" ?>
<DataInserted2 xmlns:b="http://example.com/data">
  <b:dataTobeInserted2>
    <b:otherDetails2></b:otherDetails2>
  </b:dataTobeInserted2>
</DataInserted2>
Run Code Online (Sandbox Code Playgroud)

Details3.xml

<?xml version="1.0" encoding="utf-8" ?>
<DataInserted3 xmlns:b="http://example.com/data">
  <b:dataTobeInserted3>
    <b:otherDetails3></b:otherDetails3>
  </b:dataTobeInserted3>
</DataInserted3>
Run Code Online (Sandbox Code Playgroud)

我希望我的输出为

<?xml version="1.0" encoding="utf-8" ?>
<Details xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:b="http://example.com/data">
  <b:dataTobeInserted1>
    <b:otherDetails1></b:otherDetails1>
  </b:dataTobeInserted1>
  <b:dataTobeInserted2>
    <b:otherDetails2></b:otherDetails2>
  </b:dataTobeInserted2>
  <b:dataTobeInserted3>
    <b:otherDetails3></b:otherDetails3>
  </b:dataTobeInserted3>
  <sampleData>
    <otherNodes></otherNodes>
  </sampleData>
</Details>
Run Code Online (Sandbox Code Playgroud)

这就是我为实现所需输出所做的工作.

    XmlDocument xmldoc = new XmlDocument(); …
Run Code Online (Sandbox Code Playgroud)

c# xml

9
推荐指数
1
解决办法
8456
查看次数

Silverlight中的this.Dispatcher.BeginInvoke()和Deployment.Current.Dispatcher.BeginInvoke()方法之间的区别

我知道Dispatcher.BeginInvoke()用于在UI线程中执行一些代码.最后我注意到有另一种方法可以通过使用'Deployment'类来获取Dispatcher实例.我想知道

调用this.Dispatcher.BeginInvoke()Deployment.Current.Dispatcher.BeginInvoke()函数之间是否有任何差异?

我什么时候应该使用this.Dispatcher.BeginInvoke()Deployment.Current.Dispatcher.BeginInvoke()

谢谢Alex

silverlight mvvm silverlight-4.0

7
推荐指数
1
解决办法
3091
查看次数

AngularJS材质对话框在Mac Safari中无法正常显示

我是AngularJS Material Design的新手我在Mac Safari中遇到了一个问题.我有一个对话框显示给用户,除了Mac Safari之外,所有浏览器都没有任何问题.

它是如何在其他浏览器中显示的

其它浏览器

它是如何在Mac Safari中显示的
在此输入图像描述

我试图通过提供一些解决方法来解决这个问题,例如"flex-shrink:0""flex-basis:auto;" 但似乎没有任何工作.

这是我的代码的微缩版本或使用代码笔.任何帮助或建议都非常感谢.

main.html中

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.4/angular-material.min.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-animate.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-aria.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-messages.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.4/angular-material.min.js"></script>
    <style>
        .flexfix {
            flex-shrink: 0;
            flex-basis: auto;
        }
    </style>
    <script>
        var dialogApp = angular.module('latestDialogApp', ['ngMaterial']);

        dialogApp.controller('AppController', function ($scope, $mdDialog) {
            $scope.TestString = "App Has been initialted";

            $scope.showCustomDialog = function () {

                $mdDialog.show({
                    templateUrl: 'login.dialog.2.html',
                    parent: angular.element(document.body),
                    clickOutsideToClose: true,
                });

            };
        });
    </script> …
Run Code Online (Sandbox Code Playgroud)

flexbox angularjs angular-material

7
推荐指数
1
解决办法
853
查看次数

尝试使用Nservice总线时出错

我是NServcie总线的新手,我正试图实现发布和订阅消息.这是我得到的错误

启动端点时出现异常,已记录错误.原因:找不到目标队列"mygateway".您可能在配置文件中的UnicastBusConfig部分的MessageEndpointMappings中错误配置了此类消息的目标(NServiceBus.Unicast.Transport.CompletionMessage).也可能是尚未创建给定队列的情况,或已被删除.

这是我在app config中使用的配置

         <MsmqTransportConfig
                       InputQueue="publisherqueue"
                       ErrorQueue="error"
                       NumberOfWorkerThreads="1"
                        MaxRetries="5" />

      <UnicastBusConfig
         DistributorControlAddress=""
         DistributorDataAddress=""
         ForwardReceivedMessagesTo="">

         <MessageEndpointMappings>
           <add Messages="Messages"
               Endpoint="mygateway" />
         </MessageEndpointMappings>
       </UnicastBusConfig>

       <MsmqSubscriptionStorageConfig
              Queue="GateWaySubscriptions" />
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么这个"mygateway"队列不是自动创建的?我做错了吗?请帮忙.

谢谢Alex.

nservicebus message-queue

5
推荐指数
1
解决办法
2221
查看次数

在 Silverlight 中使用依赖属性时出现“类型中未找到可附加属性”错误

我正在尝试做一些示例应用程序以在 DataGrid 中使用依赖属性,但是当我尝试运行应用程序时,我遇到了运行时异常

在“CustomDependencyProperty”类型中找不到可附加属性“SelectedColumnIndex”。[行:17 位置:74]

这是我用来声明我的依赖属性的代码

public class CustomDependencyProperty : DataGrid
{

    public static DependencyProperty SelectedColumnIndexProperty = DependencyProperty.Register("SelectedColumnIndex",
                                                                                                 typeof(object),
                                                                                                 typeof(DataGrid),
                                                                                                 new PropertyMetadata(0));

    public int SelectedColumnIndex
    {
        get
        {
            return (int)GetValue(SelectedColumnIndexProperty);
        }

        set
        {
            SetValue(SelectedColumnIndexProperty, value);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的 XAML 代码

<UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"  x:Class="BindingDictionary.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:local="clr-namespace:BindingDictionary"
             xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">
    <UserControl.Resources>
        <local:SimpleConverter x:Key="myConverter"></local:SimpleConverter>
    </UserControl.Resources>
        <Grid x:Name="LayoutRoot" Background="White">
        <sdk:DataGrid x:Name="dataGrid"
                      AutoGenerateColumns="True"
                      ItemsSource="{Binding Responses}" 
                      local:CustomDependencyProperty.SelectedColumnIndex="{Binding Index,Mode=TwoWay}">
        </sdk:DataGrid>
        <TextBlock x:Name="DisplayIndex" Text="{Binding Index}" />
    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚到底是什么问题。我声明依赖属性的方式有什么问题吗?

请帮忙。

谢谢,亚历克斯

silverlight dependency-properties mvvm attached-properties silverlight-4.0

5
推荐指数
1
解决办法
2万
查看次数

XPath不能在使用DataContractSerializer创建的xml中工作


我有一个datacontract对象,我能够使用DataContractSerializer将其成功序列化为xml,但是当我尝试使用XPath访问该节点时,它返回null.我无法找到它为什么会这样.

这是我到目前为止所要做的.

namespace DataContractLibrary
{
    [DataContract]
    public class Person
    {
        [DataMember]
        public string FirstName { get; set; }

        [DataMember]
        public string LastName { get; set; }

        [DataMember]
        public int Age { get; set; }
    }
}

static void Main(string[] args)
{
    Person dataContractObject = new Person();
    dataContractObject.Age = 34;
    dataContractObject.FirstName = "SomeFirstName";
    dataContractObject.LastName = "SomeLastName";

    var dataSerializer = new DataContractSerializer(dataContractObject.GetType());

    XmlWriterSettings xmlSettings = new XmlWriterSettings { Indent = true, Encoding = Encoding.UTF8, OmitXmlDeclaration = true };
    using (var xmlWriter = …
Run Code Online (Sandbox Code Playgroud)

c# xml xpath datacontractserializer

3
推荐指数
1
解决办法
471
查看次数

在C#中使用XMLWriter创建大型xml

我试图使用XMLWriter创建一个包含大数据的xml,该函数执行时没有任何异常.但是当我打开XML时,我发现创建的XML不完整,它在中途被破坏.我不知道我做错了什么.是否有XMLWriter的默认大小限制?XMLWriter是创建大型XML的最佳方式吗?如果没有,请告诉我什么是创建大型xml的最佳方法?使用XDocument是否让我的生活更轻松?

这是我的代码结构(我不能把我的原始代码放在这里!! :()

using (//file stream)
{
     XmlWriter mywriter = new XmlWriter.Create(@"C:\mydata.xml");
       // write start element1
       // write start element2

                     while (//not end of file)
                    {
                    switch (entrytype)
                    {
                        Case 1:
                           // create elements
                        Case 2:
                           // create elements
                        so on ....
                    }
                    }

       // write end element2
       // write endelement1
}
Run Code Online (Sandbox Code Playgroud)

XML的大小预计为几百KB.

请回复..

c# xml

2
推荐指数
1
解决办法
4162
查看次数

尝试使用MsmqSubscription存储时发生异常

我是NService总线的新手,我正在尝试使用MSMQSubscribtion存储创建一个总线,但我收到以下错误.

启动端点时出现异常,已记录错误.原因:创建名为"NServiceBus.Unicast.Subscriptions.Msmq.MsmqSubscriptionStorage"的对象时出错:设置属性值时出错:PropertyAccessExceptionsException(1 errors); 嵌套的PropertyAccessExceptions是:[Spring.Core.TypeMismatchException:无法将类型[System.String]的属性值转换为属性'Queue'所需的类型[System.String].,内部异常:System.ArgumentException:存在问题订阅存储队列.有关详细信息,请参阅附上 ---> System.Messaging.MessageQueueException:格式名无效.在System.Messaging.MessageQueue.MQCacheableInfo.get_Transactional()处于NServiceBus的System.Messaging.MessageQueue.get_Transactional()处.

这是我的配置部分.

<configuration>
      <configSections>
      <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig,NServiceBus.Core"/>
      <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig,NServiceBus.Core"/>
      <section name="MsmqSubscriptionStorageConfig"
              type="NServiceBus.Config.MsmqSubscriptionStorageConfig,NServiceBus.Core" />
      </configSections>

      <MsmqTransportConfig InputQueue="MyResponseQueue" ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5"/>

      <UnicastBusConfig>
        <MessageEndpointMappings>
          <add Messages="MyMessages.Message1" Endpoint="PubQueue"/>
        </MessageEndpointMappings>
      </UnicastBusConfig>
    </configuration> 
Run Code Online (Sandbox Code Playgroud)

这就是我尝试创建总线的方式

    NServiceBus.Configure.With()
        .DefaultBuilder()
        .Log4Net()
        .MsmqSubscriptionStorage()
        .XmlSerializer()
        .MsmqTransport()
        .IsTransactional(true)
        .UnicastBus()
        .CreateBus();
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释我的错误吗?任何帮助将非常感激.

谢谢Alex.

msmq nservicebus

1
推荐指数
1
解决办法
2197
查看次数