我想将一个字符串(显然是一个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
任何人都可以向我解释
我试图在另一个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) 我知道Dispatcher.BeginInvoke()用于在UI线程中执行一些代码.最后我注意到有另一种方法可以通过使用'Deployment'类来获取Dispatcher实例.我想知道
调用this.Dispatcher.BeginInvoke()和Deployment.Current.Dispatcher.BeginInvoke()函数之间是否有任何差异?
我什么时候应该使用this.Dispatcher.BeginInvoke()和 Deployment.Current.Dispatcher.BeginInvoke()?
谢谢Alex
我是AngularJS Material Design的新手我在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) 我是NServcie总线的新手,我正试图实现发布和订阅消息.这是我得到的错误
启动端点时出现异常,已记录错误.原因:找不到目标队列"mygateway".您可能在配置文件中的UnicastBusConfig部分的MessageEndpointMappings中错误配置了此类消息的目标(NServiceBus.Unicast.Transport.CompletionMessage).也可能是尚未创建给定队列的情况,或已被删除.
这是我在app config中使用的配置
Run Code Online (Sandbox Code Playgroud)<MsmqTransportConfig InputQueue="publisherqueue" ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" /> <UnicastBusConfig DistributorControlAddress="" DistributorDataAddress="" ForwardReceivedMessagesTo=""> <MessageEndpointMappings> <add Messages="Messages" Endpoint="mygateway" /> </MessageEndpointMappings> </UnicastBusConfig> <MsmqSubscriptionStorageConfig Queue="GateWaySubscriptions" />
我的问题是为什么这个"mygateway"队列不是自动创建的?我做错了吗?请帮忙.
谢谢Alex.
我正在尝试做一些示例应用程序以在 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
我有一个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) 我试图使用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.
请回复..
我是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.
c# ×4
xml ×4
mvvm ×2
nservicebus ×2
silverlight ×2
angularjs ×1
flexbox ×1
msmq ×1
paradigms ×1
xpath ×1