小编Sti*_*nus的帖子

C#3.5 partial class String IsNullOrWhiteSpace

我正在尝试为类创建额外的功能String(IsNullOrWhitespace如在.NET4中)但是我在引用方面遇到了问题:

错误1'字符串'是'string'和'geolis_export.Classes.String'之间的模糊引用

我不想创建扩展方法.因为如果这会崩溃string x = null;

用法:

private void tbCabineNum_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    e.Handled = !e.Text.All(Char.IsNumber) || String.IsNullOrWhiteSpace(e.Text);
}
Run Code Online (Sandbox Code Playgroud)

字符串部分:

public partial class String
{
    public static bool IsNullOrWhiteSpace(string value)
    {
        if (value == null) return true;
        return string.IsNullOrEmpty(value.Trim());
    }
}
Run Code Online (Sandbox Code Playgroud)

是不是可以为String班级创建额外的东西?我试图将部分放在System命名空间中,但这会产生其他错误.

重命名StringString2解决问题.但这不是我想要的,因为那时原始String类没有参考.

.net c# string .net-3.5

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

ImageMetadata更改属性已损坏

我有一个正在运行的应用程序,可以更改扫描图像的某些元数据。这一直很好,直到我们添加了预处理程序以使用GIMP控制台自动裁剪图像的边框。

我们更改了EXIF数据中的多个字段,但这仍然可以正常工作。但是,如果我想更改任何IPTC字段,则会收到错误“属性已损坏”。

对于非裁剪图像,我可以毫无问题地更改EXIF和IPTC。对于裁剪后的图像,我可以毫无问题地更改EXIF。如果我更改了IPTC信息中的任何内容,则会出现异常。

难道我做错了什么?还是在如何更改图像的EXIF / IPTC数据上还有其他解决方案?

正如在其他帖子中所发现的,我从图像中提取了BitmapMetadata。然后我将其克隆,使其可编辑。之后,我添加了填充以能够添加额外的信息。

据我所知,元数据看起来没有错。在其他工具(如IrfanView或EXIFTool)中,我可以正确更改IPTC标题。

我创建了一个显示问题的测试项目。包含裁剪前后的示例图像。

If isJpg Then
    oMetaData.SetQuery("/app13/{ushort=0}/{ulonglong=61857348781060}/iptc/{str=Headline}", "TEST_HEADLINE")
Else
    oMetaData.SetQuery("/ifd/{ushort=33723}/{str=Headline}", "TEST_HEADLINE")
End If
Run Code Online (Sandbox Code Playgroud)

System.ArgumentException:属性已损坏。---> System.Runtime.InteropServices.COMException:位图属性大小无效。(来自HRESULT的异常:0x88982F42)

示例项目

.net iptc exif

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

标签 统计

.net ×2

.net-3.5 ×1

c# ×1

exif ×1

iptc ×1

string ×1