在C#中,有没有办法在不调用其构造函数的情况下实例化类的实例?
假设该类是公共的,并在第三方库中定义,构造函数是内部的.我想这样做的原因很复杂,但知道是否有可能使用某种C#hackery会很有帮助.
注意:我特别不想调用任何构造函数,因此使用反射访问内部构造函数不是一个选项.
我使用创建我的文件File.WriteAllBytes().传递给的Byte [] File.WriteAllBytes()由我自己的算法加密.您需要在加密文件(程序用户知道密码)时使用的密码来解密它.但是当我的程序打开一些文件时File.ReadAllBytes(),有三种情况:
第一个很容易处理.第二个和第三个对我的程序是相同的,因为我的程序不知道某个随机文件的加密byte []和byte []之间的区别.
我如何区分这些情况?我想在将一些字节序列添加到byte []的结尾或开始之前将其传递给File.WriteAllBytes().这样安全吗?现代程序如何将文件与其他文件区分开来?
我有一个结构
public struct SERVER_USB_DEVICE
{
USB_HWID usbHWID;
byte status;
bool bExcludeDevice;
bool bSharedManually;
ulong ulDeviceId;
ulong ulClientAddr;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
string usbDeviceDescr;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
string locationInfo;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
string nickName;
}
Run Code Online (Sandbox Code Playgroud)
我得到了以下错误
System.ArgumentException未处理Message ="Type'SERVER_USB_DEVICE'无法编组为非托管结构;无法计算有意义的大小或偏移量."
在下面的行
Marshal.SizeOf(typeof(USBOverNetWrapper.FT_SERVER_USB_DEVICE));
Run Code Online (Sandbox Code Playgroud)
代码有什么问题?
阿卜杜勒·卡利克
是否可以使用TagLib# libary 将自定义标签(例如"SongKey:Em")添加到mp3文件中?

我正在尝试在C#中序列化一个对象.我得到了对象大小并将其保存在上面屏幕截图中207行的变量size1中.Size1的值为160.然后我使用size1在第210行分配一个名为buf的字节数组.Buff出来是一个2字节的数组!怎么会这样?!
c# ×5
allocation ×1
file ×1
file-io ×1
marshalling ×1
mp3 ×1
sizeof ×1
structure ×1
taglib-sharp ×1