小编gpa*_*ent的帖子

令人困惑的Perl数组行为

我正在使用Infoblox设备的Perl API(doc:https://ipam.illinois.edu/api/doc/)

我有以下代码:

...

my $specificRecord = $recordResults[0];

say $specificRecord->name();

foreach ($specificRecord->ipv4addrs())
{
    say $_;
}
Run Code Online (Sandbox Code Playgroud)

$ specificRecord包含一个Infoblox :: DNS :: Host记录对象.

当我在ipv4addrs()上进行迭代时,我的问题出现了.根据文档和perl调试器,ipv4addrs()返回包含IP或DHCP :: FixedAddr对象的ARRAY.

在我的情况下,如果我调试我的程序和"x"$ specificRecord-> ipv4addrs()以及$ _,我得到相同的结果:

DB<1> b 70

DB<2> c
Results: 1
aaaa9999test.justice
main::(testScript2.pl:70):          foreach ($specificRecord->ipv4addrs())
main::(testScript2.pl:71):          {

DB<2> x $specificRecord->ipv4addrs();
0  ARRAY(0x64e9e3c)
   0  '8.8.8.8'
   1  '8.8.4.4'

DB<3> n
main::(testScript2.pl:72):              say $_;

DB<3> x $_;
0  ARRAY(0x64e9e3c)
   0  '8.8.8.8'
   1  '8.8.4.4'
Run Code Online (Sandbox Code Playgroud)

以下是Infoblox :: DNS :: Host对象的"x"的相关部分:

DB<2> x $specificRecord;
0  Infoblox::DNS::Host=HASH(0x8b3eacc)
   '__object_id__' …
Run Code Online (Sandbox Code Playgroud)

perl

4
推荐指数
1
解决办法
195
查看次数

如何序列化System.Security.AccessControl.FileSecurity?

我正在为我们的内部软件开发小规模部署系统,该软件管理多种数据的备份.部分任务是备份某些文件夹,我想备份应用于这些文件夹的ACL,以便在恢复时文件仍然按预期工作.

原型设计一些代码,我尝试过使用.NET的内置XmlSerializer,但无济于事.

这是示例代码:

public static byte[] SerializeFileACL(string path)
{
    var acl = File.GetAccessControl(path, AccessControlSections.All);

    using (var ms = new MemoryStream())
    {
        _fileSerializer.Serialize(ms, acl);
        return ms.ToArray();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,无论我尝试使用哪个文件,它都会返回相同的143个字节.有没有一种使用.NET工具序列化ACL的好方法?我究竟做错了什么?

PS:是的,我知道ACL可能不适用于其他计算机.这不是这个项目的问题.

.net windows serialization acl

3
推荐指数
1
解决办法
619
查看次数

标签 统计

.net ×1

acl ×1

perl ×1

serialization ×1

windows ×1