小编Rya*_*yan的帖子

标记MSI,因此必须以提升的管理员帐户运行

我有一个CustomAction作为MSI的一部分.

它必须作为域帐户运行,该帐户也是本地Administrators帐户的成员.

它不能使用NoImpersonate标志将自定义操作作为NT Authority\System运行,因为它不会访问网络资源.

在启用了UAC的Vista/2008上,如果NoImpersonate处于关闭状态,则它将作为执行用户运行,但具有非特权令牌,并且无法访问本地资源,例如.installState.请参阅UAC架构

任何人都知道一种方法

  • 强制MSI使用提升的令牌运行,就像从提升的命令提示符运行一样?

  • 强制CustomAction运行提升(清单中的requireAdministrator似乎不起作用)?

  • 如果启用了UAC并且是否未升级并且如果出现警告或取消安装,请确定?

c# windows-installer uac custom-action

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

BindingRedirect到不同的程序集名称

您可以使用BindingRedirect将YourAssembly.dll 1.1.0.0重定向到1.2.0.0.

有没有人知道如果程序集名称不同,是否可以这样做.

例如

YourAssembly1.dll(v1.1)重定向到YourAssembly2.dll(v2.8)

.net assembly-resolution assemblybinding

23
推荐指数
2
解决办法
3884
查看次数

使用HTML5 url输入验证假设url以http://开头

HTML5提供自动URL验证: -

<form>
   <input type="url" name="someUrl">
</form>
Run Code Online (Sandbox Code Playgroud)

这将无法验证没有协议前缀的URL - 例如,stackoverflow.comhttp://stackoverflow.com通过时将失败.

如果还没有协议,如何自动将http://添加到URL?

我可以添加一个onblur事件处理程序,但在验证事件之前有更好的方法吗?

html5

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

货币格式

这应该是一个容易的问题,但......

我需要在C#中格式化显示(字符串)的货币

有问题的货币将有自己的规则,例如要使用的符号以及该符号是否应该在价值之前(例如10美元)或之后(例如10₫是越南盾).

但数字的格式取决于用户本地,而不是货币.

例如

1.234,56 ? should be displayed to a user in Vietnam but 
1,234.56 ? should be displayed to a user in the US
Run Code Online (Sandbox Code Playgroud)

(格式化为代码,因此很容易看出它们之间的区别,和.)

所以代码就像

Double vietnamTotal = 1234.56;
return vietnamTotal.ToString("c");  
Run Code Online (Sandbox Code Playgroud)

将无法工作,因为它将使用用户(或更准确的CultureInfo.CurrentCulture)区域设置格式和货币,所以你会得到$ 1,123.56之类的东西 - 正确使用,和.但错误的符号.

Double vietnamTotal = 1234.56;
CultureInfo ci = new CultureInfo(1066); // Vietnam
return vietnameTotal.ToString("c",ci)); 
Run Code Online (Sandbox Code Playgroud)

会给1.234,56₫ - 正确的符号,错误的使用,和.对于当前用户.

这篇文章提供了有关正确的事情的更多细节,但没有提供如何做到这一点.

我错过了隐藏在框架中的明显方法?

.net c#

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

提高大型结构列表的二进制序列化性能

我有一个结构,持有3个整数的三维坐标.在测试中,我将一个包含100万个随机点的List <>组合在一起,然后将二进制序列化用于内存流.

内存流大约为21 MB - 这似乎非常低效,因为1000000点*3个coords*4个字节应该在最小11MB时出现

它在我的测试台上也需要约3秒钟.

有什么改善性能和/或尺寸的想法?

(如果有帮助,我不必保留ISerialzable接口,我可以直接写入内存流)

编辑 - 从下面的答案我已经把一个序列化摊牌比较BinaryFormatter,'原始'BinaryWriter和Protobuf

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using ProtoBuf;

namespace asp_heatmap.test
{
    [Serializable()] // For .NET BinaryFormatter
    [ProtoContract] // For Protobuf
    public class Coordinates : ISerializable
    {
        [Serializable()]
        [ProtoContract]
        public struct CoOrd
        {
            public CoOrd(int x, int y, int z)
            {
                this.x = x;
                this.y = y;
                this.z = z;
            }
            [ProtoMember(1)]            
            public int x;
            [ProtoMember(2)]
            public int y; …
Run Code Online (Sandbox Code Playgroud)

.net c# generics serialization

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

优雅的方式来停止发布编译错误

随着你的发展,你经常使用像

throw new NotImplementedException("Finish this off later") 
Run Code Online (Sandbox Code Playgroud)

要么

// TODO - Finish this off later
Run Code Online (Sandbox Code Playgroud)

作为一个占位符,提醒你完成一些事情 - 但这些可能会错过并错误地在发布中结束.

你可以用类似的东西

#if RELEASE
   Finish this off later
#endif
Run Code Online (Sandbox Code Playgroud)

所以它不会在Release版本中编译 - 但是有更优雅的方式吗?

c#

16
推荐指数
3
解决办法
595
查看次数

使用Knockout.js如何将Date属性绑定到HTML5日期选择器?

(目前仅适用于Chrome,因为大多数浏览器尚未为输入类型="日期"实现日期选择器)

在下面的示例中,MyDate以具有当前日期的Date对象开始,但日期输入(它希望其格式为格式为YYYY/MM/DD的字符串)不会选择此项.

一旦你在选择器中选择了一个日期,MyDate就会变成上面格式的字符串.

如何绑定这个,以便MyDate保持javascript日期并由输入控件正确解释?

http://jsfiddle.net/LLkC4/3/: -

<input data-bind="value : MyDate" type="date">
<hr>   
<span data-bind="html: log" />

<script>
var viewModel = {    
    MyDate : ko.observable(new Date()),
    log : ko.observable(""),
    logDate : function () { 
            this.log(this.log() + this.MyDate() + " : " +
                     typeof(this.MyDate()) + "<br>");
                     }
};

viewModel.MyDate.subscribe(function (date) {    
    viewModel.logDate();    
});

ko.applyBindings(viewModel);

viewModel.logDate()
</script>
Run Code Online (Sandbox Code Playgroud)

javascript html5 knockout.js

16
推荐指数
4
解决办法
4万
查看次数

在存储库模式的抽象类上使用接口的优势?

可能重复:
接口与基类

通常可以看到使用Interfaces实现的存储库模式

public interface IFooRepository
{
   Foo GetFoo(int ID);
}

public class SQLFooRepository : IFooRepository
{
   // Call DB and get a foo
   public Foo GetFoo(int ID) {}
}

public class TestFooRepository : IFooRepository
{
   // Get foo from in-memory store for testing
   public Foo GetFoo(int ID) {}
}
Run Code Online (Sandbox Code Playgroud)

但你可以使用抽象类同样地做到这一点.

public abstract class FooRepositoryBase
{
    public abstract Foo GetFoo(int ID);
}

public class SQLFooRepository : FooRepositoryBase
{
    // Call DB and get a foo
    public override Foo GetFoo(int ID); …
Run Code Online (Sandbox Code Playgroud)

c# architecture design-patterns

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

xml序列化将xmlelement和xmlattribute一起指定

鉴于: -

[XmlRoot("Book")]
public class Book
{
   [XmlAttribute]
   public string Title;

   [XmlElement]
   public string Publisher;

   [XmlElement]
   public string PublisherReference;
}
Run Code Online (Sandbox Code Playgroud)

当序列化为XML时会给出

<Book Title="My Book">
   <Publisher>Some Publisher</Publisher>
   <PublisherReference>XYZ123</PublisherReference>
</Book>
Run Code Online (Sandbox Code Playgroud)

我如何将PublisherReference作为Publisher的属性 - 例如

<Book Title="My Book">
   <Publisher Reference="XYZ123">Some Publisher</Publisher>
</Book>
Run Code Online (Sandbox Code Playgroud)

.net c# xml-serialization

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

Azure配置设置和Microsoft.WindowsAzure.CloudConfigurationManager

显然,Microsoft.WindowsAzure.CloudConfigurationManager.GetSettings将首先查看ServiceConfiguration.*.cscfg,然后回退到web.config和app.config.

但是 - 这应该是web/app .config中的格式?

例如,Microsoft.WindowsAzure.CloudConfigurationManager.GetSettings("Foo")要从app.config中获取XML的样子是什么?

c# configuration-files azure

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