有什么工具可以用随机数据填充类属性吗?我想要做的是创建一个具有不同属性的属性的类,将该类传递给另一个类,该类将使用适当的随机数据设置属性......这是伪代码:publicclassCustomer{[Attribute("FirstName")]privatestringCustomerFirstName;public{get;set}//etc[Attribute("LastName")]privatestringCustomerLastName;public{get;set;}//etc[Attribute("DateTime")]privateDateTimeCustomerSignUpDate;publicDateTime{get;set;}//yadda[Attribute("Phone")]privatestringCustomerPhone;publicstring{get;set;}//yadda}然后做IListCustomerList=ClassFillerOutClass(newCustomer(),5);结果将是一个包含5个客户的列表,在他们的属性中具有适当的“随机”数据。如果这不存在……我想我可以自己开始一个项目……我只是不想在没有必要的情况下重新发明轮子。编辑:我忘了一块。我想用它作为测试工具。因此,在上面的示例中,我可以快速创建一个包含5个具有随机但适当值的客户的列表。然后说将它传递给我的持久性方法,并有一些我可以检查的东西。我试图避免每次出于TDD目的手动创建填充对象。编辑2:好的,所以我开始自己...我将在本周末将其发布在Codeplex上并在此处链接...我显然不会这样做,但如果其他人想要的话,这将是一个开始继续努力吧。好吧……所以我从来没有找到一个……所以我决定开始自己的。查看:物体加热器。该项目目前是一个快速增长...但我认为它有潜力...如果您有想法如何让它变得更好,请告诉我。我尝试了AutoFixture(http://autofixture.codeplex.com/),它对我来说效果很好。我能够在一行代码中生成一个具有深层子层次结构的对象。现在您还拥有执行相同操作的NBuilder(nbuilder.org)。不知道这两个项目有没有关系。我不知道你的目标,但我会保持接近代码级别。这种方法可能不适合你,但它适用于我。您可以生成随机数据并将其放入数据库中。有一些商业成本产品可以做到这一点。我正在使用RedGate的SQL数据生成器。使用此数据,您可以在SQL中执行一些文本操作以转换列数据:TableCustomerFirstName|姓|注册日期|电话BobSmith1/2/2009555-555-1212JaneDoe9/11/2009555-300-1334...into:newCustomer(){CustomerFirstName="Bob",CustomerLastName="Smith",CustomerSignUpDate=DateTime.Parse("1/2/2009"),Phone="555-555-1212"},newCustomer(){CustomerFirstName="Jane",CustomerLastName="Doe",CustomerSignUpDate=DateTime.Parse("9/11/2009"),Phone="555-300-1334},然后用文本编辑器将其包装成以下内容(这是C#3.0语法):publicclassFakeCustomerRepository{privateIListm_Customers=newList(){[insertSQLtexttransformhere]};publicCustomerGet(...){returnm_Customers.Find(...);}}同样,我不知道你的需求,不知道你是否需要运行时的随机数据,上面的方法只是有用的如果你想快速和静态地生成大量数据。建议的对象垫片都不适合我复杂的对象。我有超级复杂的嵌套对象,其中包含嵌套数组的数组,这对我来说只是一半的情况。http://hydrator.codeplex.com/我填充了除数组以外的所有内容。您可以在c#中使用ObjectHydratorurlhttp://objecthydrator.codeplex.com/并使用publicEmployeeGetEmployee(){returnnewHydrator().GetSingle();}publicIListGetEmployees(){returnnewHydrator().GetList(100);}Anand以上是C#学习教程:有没有工具可以用随机数据填充类属性?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
