小编Ste*_*dit的帖子

从AssemblyInfo后编译中读取AssemblyFileVersion

如何在编译后读取.csproj中的AssemblyFileVersion或其组件AssemblyFileMajorVersion,AssemblyFileMinorVersion,AssemblyFileBuildNumber,AssemblyFileRevision?

我尝试了以下从构建的程序集中提取信息:

<Target Name="AfterCompile">
    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
         <Output
             TaskParameter="Assemblies"
             ItemName="MyAssemblyIdentities"/>
    </GetAssemblyIdentity>
    <Message Text="AssemblyVersion = %(MyAssemblyIdentities.Version)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

但是,它检索AssemblyVersion而不是AssemblyFileVersion.对于后者,似乎没有记录的元数据条目.我也尝试过:

<Import Project="$(MSBuildExtensionsPath)\ExtensionPack\MSBuild.ExtensionPack.tasks" />
<Target Name="AfterCompile">
    <MSBuild.ExtensionPack.Framework.Assembly TaskAction="GetInfo" NetAssembly="$(TargetPath)">
        <Output TaskParameter="OutputItems" ItemName="Info" />
    </MSBuild.ExtensionPack.Framework.Assembly>
    <Message Text="AssemblyFileVersion = %(Info.FileVersion)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

不幸的是,虽然这会检索正确的值,但它也会锁定程序集,直到VS2008关闭.

坦率地说,我不想要什么,因为我宁愿直接从AssemblyInfo.cs读取信息.但是,我无法弄清楚如何做到这一点.我假设MSBuild Extensions中的AssemblyInfo是一种方式,但它似乎专注于写入AssemblyInfo而不是从中检索值.

我怎样才能最好地完成这个?

.net versioning msbuild assemblies

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

有什么区别:image/x-citrix-pjpeg和image/pjpeg

使用报告的MIME类型上载某些文件:

image/x-citrix-pjpeg
Run Code Online (Sandbox Code Playgroud)

它们是有效的jpeg文件,我接受它们.

我想知道:为什么MIME类型不同?
格式有什么不同吗?或者这种mimetype是由Citrix的一些灯泡发明的,没有明显的原因?

jpeg citrix mime-types

11
推荐指数
2
解决办法
6687
查看次数

DI和JSON.NET

我正在使用JSON.NET来为不同目的序列化和反序列化对象.我是DI的忠实粉丝,但下面的代码让我感到寒意.闻起来像坏代码:

public class Foo : Baz
{
    private readonly IBar bar;

    public Foo()
        : this(ObjectFactory.GetInstance<IBar>())
    { }

    public Foo(IBar bar)
    {
       if (bar == null)
            throw new ArgumentNullException("bar");

       this.bar = bar;
    }

   ... rest of class ...
}
Run Code Online (Sandbox Code Playgroud)

默认构造函数是让我发冷的东西.我添加了这个来支持JSON.NET引起的反序列化:

string jsonString = ...;
string concreteBazType = ...;

Baz baz = (Baz)JsonConvert.DeserializeObject(jsonString, Type.GetType(concreteBazType);
Run Code Online (Sandbox Code Playgroud)

请注意,类Foo继承自抽象基类Baz!

我向你们提出的问题DI和JSON.NET极客:如何改变代码以避免默认构造函数在类Foo中给出的代码味道?

.net json dependency-injection json.net

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

JScrollpane需要缩小其宽度

我有一个JScrollpane,有一个JPanel在里面(与面板包含一些JLabelS).

我想调整滚动窗格的大小以实际更改其大小(可能低于内部组件的首选大小),而不仅仅是视口的大小.

目标是当用户缩小滚动窗格太小时,内部面板优雅地消失(使用我的miglayout中的特定缩小优先级等).

java swing jscrollpane miglayout

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

.NET内存大小

关于存储数据及其内存占用,我有一个非常基本的问题.

我有一个List<t>存储我需要的基础对象.类型t有一个int id来定义它,以及其他字段.

我现在有一本词典.如果我创建了一个Dictionary<t, int>,其中t是值的对象,那么内存分配是否会高得多,如果我创建了一个Dictionary<int, int>,即存储了t对象的副本,或者只是再次存储了refence?

谢谢

.net c#

10
推荐指数
2
解决办法
679
查看次数

如何让Decimal.TryParse解析0.0?

有没有办法让Decimal.TryParse将字符串值"0.0"或"00.00"或"000.000"解析为0?

我已经尝试将NumberStyles设置为Any.

.net c#

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

处理需要数据库(MySQL)密码的脚本的安全方法是什么?

显然,我们不想在每个脚本中对明文密码进行硬编码.这会使密码循环变得困难,因为除了密码首先是明文密码之外,还需要更改大量的脚本.

如果脚本将密码作为参数,那么我们需要担心修改'ps'输出以不显示密码参数的值.我们还必须担心shell历史记录中记录的命令.这可以通过bash上的HISTIGNORE/HISTCONTROL来处理,但是还有其他shell在使用时具有不同且灵活性较差的控件(例如:zsh).我们还可以使用特定于命令行的环境变量(FOO = bar ./script),而'FOO = bar'不会显示在'ps'中,默认情况下,它仍会记录到shell历史记录中.此外,一些系统无论如何都会暴露其他用户的过程环境(通过'ps').

可以使用密码(配置)文件来简单地存储明文密码.该文件可以拥有/许可,以加强其访问权限.但是,在一天结束时,您仍然有明文密码.

提示也是一种选择,但这往往不那么方便(例如,仍然可以通过预期),并且如果脚本需要,则使非交互性变得复杂.

可以使用某些风格的加密,但是我们仍然有类似的问题来处理解密密钥.

我应该选择以上其中一种吗?其他选择可能更优越吗?人们如何处理这种情况是一种安全的方式?

这里的一般目标是,如果攻击者以某种方式进入使用数据库服务器的系统,则攻击者不应该能够组成数据库服务器.例如,攻击不应该只是找到位于某处的密码,不应该观察系统('ps')来发现它,并且不应该"回顾过去" (shell历史)找到它.

我完善意识到有数百万个场景(kmem,交换页面等等等),并且如果攻击者获得root或物理访问并且没有任何东西是100%安全的话,那么大多数赌注都会被关闭.我只是在寻找合理的最佳方法.:-)

mysql linux security

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

asp.net扩展IPrincipal

我想在asp.net中扩展IPrincipal以允许我获得我将定义的usertype.我想在控制器中做到这一点

string type = User.UserType 
Run Code Online (Sandbox Code Playgroud)

然后在我的扩展方法中,我将有一个方法,如

public string UserType()
{
  // do some database access 
  return userType

}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?可能吗?谢谢!

c# inheritance interface iprincipal

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

带扩展名的String.Format电话号码

我正在尝试创建一个格式化美国电话号码的功能 - 希望不会遍历每个数字.

全部通过10位数就可以了.但是,当传递超过10位数字时,我希望String.Format方法在右侧附加扩展数字.例如:

当结果中传入的14位数字应该是:(444)555-2222 x8888当结果中传递的12位数应该是:(444)555-2222 x88等.但是我当前尝试得到的是:传入12位数字返回此字符串'() - 949 x555444433'

这是我到目前为止所拥有的.

public static string _FormatPhone(object phonevalue)
{
    Int64 phoneDigits;

    if (Int64.TryParse(phonevalue.ToString(), out phoneDigits))
    {
        string cleanPhoneDigits = phoneDigits.ToString();
        int digitCount = cleanPhoneDigits.Length;

        if (digitCount == 10)
            return String.Format("{0:(###) ###-####}", phoneDigits);
        else if (digitCount > 10)
            return String.Format("{0:(###) ###-#### x#########}", phoneDigits);
        else
            return cleanPhoneDigits;
    }

    return "Format Err#";
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c# string

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

如何在单独的AppDomain中运行方法?

在我的场景中,我想在单独的AppDomain中执行一个方法.我可以采取多少种不同的方法来实现这一目标?

特别是,我有以下问题:

  • 我可以将程序集加载到AppDomain A并在AppDomain B中执行其方法吗?
  • 我似乎用AppDomain.DoCallBack方法和CrossAppDomainDelegate实现了这一点.我无法弄清楚如何在不同的AppDomain中使用程序集和方法是有意义的.为了执行该方法,是否同样可以再次加载到其他AppDomain中?

.net c#

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