Tag: xml

如何向wix安装项目添加自定义操作

我的解决方案中有两个项目: 1)。 自定义操作类(CustomAction) 2)。 Wix安装项目(TestSetup) CustomAction项目中有CustomAction.cs: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using Microsoft.Deployment.WindowsInstaller; namespace CustomAction { public class CustomActions { [CustomAction] public static ActionResult CustomAction1(Session session) { File.Create(@”c:\installed.txt”); return ActionResult.Success; } } } Product.wxs: 安装项目构建没有问题,但是当我尝试运行它时,我收到一条错误消息:“此Windows Installer程序包存在问题。无法运行此安装所需的DLL。请联系您的支持人员或包装供应商“ 我认为这是因为二进制源文件值不正确。 你会说明如何解决它吗?

在C#中生成XML文档哈希

在C#中散列XML文档的最佳方法是什么? 我想散列一个XML文档,以便我可以判断它是否从生成时手动更改。 我没有使用它来保证安全性 – 如果有人更改了XML,并且更改了哈希以匹配,那就没关系了。 例如,我会对根的子节点进行哈希并将哈希存储为根的属性:

在C#中,有没有办法使用短前缀而不是每个节点的完整命名空间生成XDocument?

我只是想让我的XML更整洁,更小。 我知道在C#中我可以这样做: XNamespace ds = “http://schemas.microsoft.com/ado/2007/08/dataservices”; new XElement(ds + “MyDumbElementName”, “SomethingStupid”); 并得到一个XML simliar: SomethingStupid 而不是像这样的东西: SomethingStupid 显然,第二个版本更漂亮,更易于阅读和紧凑。 有没有办法生成一个XDocument等效的紧凑版本,而不调用Parse(“…”)? 您可能决定承担风险并回答“否”,在这种情况下,我认为公平的事情是等待其他人回答,如果没有人给出合适的答案,我会接受您的“否”,否则如果有人确实提供了答案,我会标记“否”。 我希望你们看起来也很公平。 编辑:也许我应该更具体一点,并说我希望能够使用多个名称空间,而不仅仅是一个。

如何使用XmlElementAttribute for List ?

我有一个这样的课: public class Level { [XmlAttribute] public string Guid { get; set; } } public class LevelList : List { } public class Test { public LevelList CalLevelList { get; set; } } 使用XmlSerializer,我得到这样的输出: 这在技术上是正确的。 但是,在不更改类名的情况下,我想使输出看起来像这样: 我知道这可以通过属性完成,但无法弄清楚如何。 当我向Test类添加一个属性时,如下所示: public class Test { [XmlElement(“Levels”)] public LevelList CalLevelList { get; set; } } 输出非常令人惊讶: 这意味着,我丢失了父节点。 我指定的元素名称成为节点名称。 为什么这个? […]

如何更改此XML字符串以便XDocument.Parse读取它?

在以下代码中,我将对象序列化为XML 字符串 。 但是当我尝试使用XDocument.Parse将此XML字符串读入XDocument时,它会给我这个错误 : 根级别的数据无效。 XML是: 1 Jim Jones 23434 更新:这是hex: ![alt text][1] Mod edit – 禁用超链接:指向恶意软件的链接 我该如何处理这个XML,以便它在没有错误的情况下读入XDocument? using System; using System.Collections.Generic; using System.Xml.Serialization; using System.IO; using System.Xml; using System.Text; using System.Xml.Linq; namespace TestSerialize2342 { class Program { static void Main(string[] args) { List customers = Customer.GetCustomers(); Console.WriteLine(“— Serializing ——————“); foreach (var customer in […]

app.config没有保存值

我的App.Config是这样的: 我尝试使用以下方法保存foo值: private void SaveValue(string value) { var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings.Add(“foo”, value); config.Save(ConfigurationSaveMode.Modified); } 但这并没有改变它的价值。 而且我没有例外。 怎么解决这个问题? 提前致谢!

Billion Laughs Attack是否应该在C#中运行?

我试图从MSDN杂志页面测试XML代码,它说下面的代码行将导致处理时内存使用量增加到3GB。 <!DOCTYPE lolz [ ]> &lol9; 当我尝试将该文本粘贴到Visual Studio中的xml文件中时,确实显示内存和CPU使用率都有所增加。 但是,当我尝试将其放在文本文件中而不是XML文件并使用c#加载它时,它没有任何影响。 更新:我认为LoadXml方法应该有影响,但我想这不是处理部分。 当我试图得到第一个孩子时,它(即c#)抛出一个exception,告诉MaxCharactersFromEntities超出了MaxCharactersFromEntities 。 更新:这里也是我的代码: using System; using System.Xml; namespace BillionLaughsAttack { class Program { //The file containing the billion laughs mentioned previously //a txt file: Since an xml file causes visual studio to parse static String xmlFileLocation = “./MyData/DeepXML.txt”; static void Main(string[] args) { String xmlContent […]

如何将XML数据解析为自定义C#类的属性?

建立 我在我的Main()函数中有这个。 List tokens = new List(); string path = @”\(some directories)\tokens.xml”; XDocument doc = XDocument.Load(path); 我有这个类有一些属性。 public partial class Token { public Token() { SetURLs = new List(); SetNames = new List(); } public string Name { get; set; } public List SetURLs { get; set; } public List SetNames { get; set; } […]

字符串转义为XML-Attribute

我看了一下XML转义字符串 ,发现它非常有用。 我想做类似的事情:转义要在XML-Attribute中使用的字符串。 该字符串可能包含\ r \ n。 XmlWriter类产生类似\ r \ n – >&#xD;&#xA; 我目前使用的解决方案包括XmlWriter和StringBuilder,而且非常难看。 任何提示? EDIT1: 抱歉让LarsH失望,买我的第一个方法是 public static string XmlEscapeAttribute(string unescaped) { XmlDocument doc = new XmlDocument(); XmlAttribute attr= doc.CreateAttribute(“attr”); attr.InnerText = unescaped; return attr.InnerXml; } 这是行不通的。 XmlEscapeAttribute(“Foo\r\nBar”)将导致”Foo\r\nBar” 我使用.NET Reflector来了解XmlTextWriter如何转义属性。 它使用内部的XmlTextEncoder类… 我的方法我目前正在使用这样的方法: public static string XmlEscapeAttribute(string unescaped) { if (String.IsNullOrEmpty(unescaped)) return unescaped; XmlWriterSettings settings […]

使用x509证书签署xml文档

每次我尝试发送签名的XML时,Web服务validation程序都会拒绝它。 为了签署文档,我刚刚调整了Microsoft提供的示例代码: http://msdn.microsoft.com/es-es/library/ms229745(v=vs.110).aspx 我的实施: public static XmlDocument FirmarXML(XmlDocument xmlDoc) { try { X509Certificate2 myCert = null; var store = new X509Store(StoreLocation.CurrentUser); //StoreLocation.LocalMachine fails too store.Open(OpenFlags.ReadOnly); var certificates = store.Certificates; foreach (var certificate in certificates) { if (certificate.Subject.Contains(“xxx”)) { myCert = certificate; break; } } if (myCert != null) { RSA rsaKey = ((RSA)myCert.PrivateKey); // Sign […]