真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在C#中使用Bogus去創(chuàng)建模擬數(shù)據(jù)的方法

這篇文章主要介紹了在C#中使用Bogus去創(chuàng)建模擬數(shù)據(jù)的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司 - 雅安服務(wù)器托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽服務(wù)器托管,德陽服務(wù)器托管,遂寧服務(wù)器托管,綿陽服務(wù)器托管,四川云主機,成都云主機,西南云主機,雅安服務(wù)器托管,西南服務(wù)器托管,四川/成都大帶寬,服務(wù)器機柜,四川老牌IDC服務(wù)商

Bogus, 一個基于C#的簡單數(shù)據(jù)生成器。使用Bogus生成模擬數(shù)據(jù), 你只需要定義規(guī)則并生成數(shù)據(jù)即可,就是這么簡單。而且Bogus可以生成固定數(shù)據(jù)或者變化數(shù)據(jù)。這樣一旦你拿到了這些數(shù)據(jù),你就可以把它們序列化成你想要的格式: json, xml,數(shù)據(jù)庫或者文本文件。

生成模擬數(shù)據(jù)

為了生成模擬數(shù)據(jù),我們首先需要針對模擬數(shù)據(jù)創(chuàng)建對應(yīng)的實體類。這里我們可以創(chuàng)建一個命令行程序,并添加一下兩個類。

public class Customer
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
    public string ZipCode { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }
    public string ContactName { get; set; }
    public IEnumerable Orders { get; set; }
}
public class Order
{
    public Guid Id { get; set; }
    public DateTime Date { get; set; }
    public Decimal OrderValue { get; set; }
    public bool Shipped { get; set; }
}

在你創(chuàng)建好以上兩個實體類之后,你就可以來添加倉儲來獲取模擬數(shù)據(jù)了。為了使用Bogus, 你可以使用Nuget將Bogus庫添加到你的項目中。

Install-Package Bogus

相關(guān)教程:C#視頻教程

下面我們就可以來添加一個倉儲類來獲取模擬數(shù)據(jù)了。這里我們添加一個SampleCustomerRepository類,并加入以下方法。

public IEnumerable GetCustomers()
{
    Randomizer.Seed = new Random(123456);
    var ordergenerator = new Faker()
        .RuleFor(o => o.Id, Guid.NewGuid)
        .RuleFor(o => o.Date, f => f.Date.Past(3))
        .RuleFor(o => o.OrderValue, f => f.Finance.Amount(0, 10000))
        .RuleFor(o => o.Shipped, f => f.Random.Bool(0.9f));
    var customerGenerator = new Faker()
        .RuleFor(c => c.Id, Guid.NewGuid())
        .RuleFor(c => c.Name, f => f.Company.CompanyName())
        .RuleFor(c => c.Address, f => f.Address.FullAddress())
        .RuleFor(c => c.City, f => f.Address.City())
        .RuleFor(c => c.Country, f => f.Address.Country())
        .RuleFor(c => c.ZipCode, f => f.Address.ZipCode())
        .RuleFor(c => c.Phone, f => f.Phone.PhoneNumber())
        .RuleFor(c => c.Email, f => f.Internet.Email())
        .RuleFor(c => c.ContactName, (f, c) => f.Name.FullName())
        .RuleFor(c => c.Orders, f => ordergenerator.Generate(f.Random.Number(10)).ToList());
    return customerGenerator.Generate(100);
}

這里的第三行代碼,我們?yōu)?code>Randomizer.Seed屬性指定一個固定的隨機種子,因此每次生成的數(shù)據(jù)都是一樣的。如果你不希望每次都生成固定的數(shù)據(jù),你可以去掉這行代碼。

這里我們?yōu)橛唵魏涂蛻魯?shù)據(jù)的生成定義了規(guī)則,然后我們調(diào)用了Generate方法來生成模擬數(shù)據(jù)。就是這么簡單。

如上所見,Bogus提供了許多類來生成數(shù)據(jù)。例如Company類可以用來生成公司模擬數(shù)據(jù),例如公司名稱。你可以使用這些生成的數(shù)據(jù)作為你程序的模擬數(shù)據(jù),這些數(shù)據(jù)有3種使用場景

  • 單元測試的模擬測試數(shù)據(jù)
  • 設(shè)計階段的模擬數(shù)據(jù)
  • 原型的模擬數(shù)據(jù)

但是我確信,你能發(fā)現(xiàn)更多的使用場景。

這里為了使用這些數(shù)據(jù),你可以在Main方法中加入以下代碼

static void Main(string[] args)
{
    var repository = new SampleCustomerRepository();
    var customers = repository.GetCustomers();
    Console.WriteLine(JsonConvert.SerializeObject(customers, 
        Formatting.Indented));
}

這里我們將模擬數(shù)據(jù)轉(zhuǎn)換成了Json字符串,所以這里你需要添加對Newtonsoft.Json庫的引用。當你運行程序之后,你會得要以下結(jié)果。

在C#中使用Bogus去創(chuàng)建模擬數(shù)據(jù)的方法

感謝你能夠認真閱讀完這篇文章,希望小編分享在C#中使用Bogus去創(chuàng)建模擬數(shù)據(jù)的方法內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學習!


網(wǎng)頁題目:在C#中使用Bogus去創(chuàng)建模擬數(shù)據(jù)的方法
當前鏈接:http://weahome.cn/article/psjpco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部