标签: system.version

sql server中System.Version的数据类型

在SQL Server中存储System.Version的最佳方法是什么?

当我使用varchar类型时,asc的顺序结果是:

1.0.0.0
11.0.0.0
12.0.0.0
2.0.0.0
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server system.version

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

为什么JSON字符串中的System.Version没有正确反序列化?

上下文:我需要传递一个包含大量属性/字段的对象(从中间层到UI层).在这个属性列表中,一个是Version类型,它没有从JSON字符串格式正确反序列化.我在XML上选择了JSON格式,因为字符串的JSON序列化将返回短字符串结果.

问题:System.Version没有正确反序列化.我尝试了两种不同的.NET库.以下是每个代码段:

使用ServiceStack .NET库的代码片段1 :

        var version = new Version(1, 2, 3, 0);
        string reportJSON = JsonSerializer.SerializeToString<Version>(version);
        //{"Major":1,"Minor":2,"Build":3,"Revision":0,"MajorRevision":0,"MinorRevision":0}


        Version report2 = JsonSerializer.DeserializeFromString<Version>(reportJSON);
        string reportJSON2 = JsonSerializer.SerializeToString<Version>(report2);
        //{"Major":0,"Minor":0,"Build":-1,"Revision":-1,"MajorRevision":-1,"MinorRevision":-1}
Run Code Online (Sandbox Code Playgroud)

Code Snippet 2使用Newtonsoft .NET库但结果相同:

        var version = new Version(1, 2, 3, 0);
        string reportJSON = JsonConvert.SerializeObject(version);
        //{"Major":1,"Minor":2,"Build":3,"Revision":0,"MajorRevision":0,"MinorRevision":0}


        Version report2 = JsonConvert.DeserializeObject<Version>(reportJSON);
        string reportJSON2 = JsonConvert.SerializeObject(report2);
        //{"Major":0,"Minor":0,"Build":-1,"Revision":-1,"MajorRevision":-1,"MinorRevision":-1}
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?或者哪个其他JSON.NET库可以正常工作?

c# json.net deserialization system.version

18
推荐指数
2
解决办法
5612
查看次数

Java相当于.NET的Version类?

是否有Java等效的.NET的System.Version类?我怎么用Java说这个?

Version myVersion = new Version(2, 1);
Run Code Online (Sandbox Code Playgroud)

.net java system.version

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

PowerShell 中“System.Version”的版本字符串太长(或太短)

如何强制转换为System.VersionPowerShell 中的类型,或更可能更好地理解为什么我不能任意分配数字字符串类型System.Version

我们将一些软件更新放入标题包含版本号的文件夹中。在尝试获取有关所摄取的最新版本的报告时,我一直在做以下快速而肮脏的事情:

ForEach ($Folder in $(Get-ChildItem -Path $SoftwareDirectory -Directory))
{
    $CurrentVersion = $Folder -Replace "[^0-9.]"
    If ($CurrentVersion -ne $null)
    {
        If ([System.Version]$CurrentVersion -gt [System.Version]$MaxVersion)
        {
            $MaxVersion = $CurrentVersion
            $MaxFolder = $Folder
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

这将提供如下目录标题,

  • foo-tools-1.12.file
  • bar-static-3.4.0.file

大多数时候,这是可以接受的。然而,当遇到一些数字较长的怪人时,比如下面这样,

  • 小程序-4u331r364.file

在这种情况下,System.Version由于结果字符串太长而被拒绝。

Cannot convert value "4331364" to type "System.Version". Error: "Version string portion was too short or too long."
Run Code Online (Sandbox Code Playgroud)

string directory powershell system.version

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