如何解决我可以在 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
数据集,但 ko
有 lorem
数据集。如果未找到特定于区域设置的 数据集,Bogus 将默认为 en
。为了进一步说明前面的示例,缺失的 zh_CN:lorem
数据集将默认为 en:lorem
数据集。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。