微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以在 Bogus (C#) 中设置国家吗

如何解决我可以在 Bogus (C#) 中设置国家吗

我刚刚开始在 C# .net 5.0 中使用 Bogus。 我设法在沙盒应用程序中返回非常有用的数据,但我想将数据限制为基于美国。有没有办法做到这一点? (这是我的沙盒应用的一部分)

using Bogus;

namespace FrankenPeople
{
    public class GetBogus
    {
        public enum Gender
        {
            Male,Female
        }

        private static int userId = 1;

        private static readonly Faker<Person> fakeData = new Faker<Person>()
            .RuleFor(p => p.Id,f => userId++)
            .RuleFor(p => p.Gender,f => f.PickRandom<Gender>().ToString())
            .RuleFor(p => p.Title,f => f.Name.Prefix(f.Person.Gender))
            .RuleFor(p => p.FirstName,f => f.Name.FirstName(f.Person.Gender))
            .RuleFor(p => p.MiddleName,f => f.Name.FirstName(f.Person.Gender))
            .RuleFor(p => p.LastName,f => f.Name.LastName(f.Person.Gender))
            .RuleFor(p => p.StreetAddress,f => f.Address.StreetAddress())
            .RuleFor(p => p.StreetName,f => f.Address.StreetName())
            .RuleFor(p => p.City,f => f.Address.City())
            .RuleFor(p => p.State,f => f.Address.State())
            .RuleFor(p => p.Country,f => f.Address.Country())
            .RuleFor(p => p.ZipCode,f => f.Address.ZipCode())
            .RuleFor(p => p.Phone,f => f.Phone.PhoneNumber("(###)-###-####"))
            .RuleFor(p => p.Email,(f,p) => f.Internet.Email(p.FirstName,p.LastName))
            .RuleFor(p => p.SSN,f => f.Random.Replace("###-##-####"))
            .RuleFor(p => p.dob,f => f.Date.Past(18))
        ;
        public static Faker<Person> FakeData => fakeData;
    }
}

解决方法

Using locales 您可以获得地址、域后缀和电话号码:

var faker = new Faker("en_US");
,

默认情况下,Bogus 使用 en 语言环境,大致基于美国。如果您想尽可能将事情锁定在美国,请使用 en_US 语言环境。

具体来说,在您的代码示例中,要指定默认区域之外的区域设置,请更改:

fakeData = new Faker<Person>()   //default is `en`
             ...

fakeData = new Faker<Person>(locale: "en_US")
             ...

区域设置并非 100% 完美,请务必阅读 README 文件此部分中的小注释:https://github.com/bchavez/Bogus#locales

注意:某些语言环境可能没有完整的数据集。例如,zh_CN 没有 lorem 数据集,但 kolorem 数据集。如果未找到特定于区域设置的 数据集,Bogus 将默认为 en。为了进一步说明前面的示例,缺失的 zh_CN:lorem 数据集将默认为 en:lorem 数据集。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?