我一直在与SSRS战斗一段时间,这已经超出了愚蠢.当我添加对dll的引用(这是同一解决方案的一部分)时,它只给了我一个
[rsErrorLoadingCodeModule]加载代码模块时出错:'MyFile.MyClass.Code,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'.详细信息:无法加载文件或程序集"MyFile.MyClass.Code,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.该系统找不到指定的文件.
我试过点击解决方案配置告诉它调试源是在其他位置,将文件复制到大约50个不同的位置(不是gac,不可能),以管理员身份运行Visual Studio 2008,你能想到的所有愚蠢的东西. ..没什么,每次都有同样的错误.
有任何想法吗?
我Microsoft.VisualStudio.QualityTools.UnitTestFramework在测试项目中将我的参考从10更新到10.1,预期的异常似乎不再是它的工作了.试试这个例子......
[TestMethod]
[ExpectedException(typeof(FileNotFoundException))]
public void SanityTest()
{
File.ReadAllLines("TheresNoWayThisThingExists");
}
Run Code Online (Sandbox Code Playgroud)
测试失败.如果我恢复到10(必须撤消),它会通过.有人验证这个还是仅仅是我?我已经在resharper的测试运行器和ms测试运行器中尝试了相同的结果.
编辑:其他信息
它似乎知道它通过了......有点儿.为'noExceptionMessage'添加字符串值不会在失败时返回该字符串值.
AllowDerivedTypes似乎也没有效果.(我将FileNotFound换成了Exception,结果相同)
我有一个类,我已经抽象出来,可以测试并开始遇到一个有趣的困境。这些测试类应该嵌套吗?例如 ...
public class ValidateCompanyTests
{
public virtual Setup()
{
//setup stuff
}
[TestClass]
public class AndCompanyDoesNotExist : ValidateCompanyTests
{
public override Setup()
{
base.Setup();
//setup specific condition
}
[TestMethod]
public void ShouldReturnFalse()
{
}
[TestMethod]
public void ShouldCreateError()
{
}
[TestMethod]
public void ShouldSaveError()
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
AndCompanyDoesExist 的设置几乎相同,但条件更多。
我的问题是,除了只在 MSTest 中打印出来的明显方法之外,我不确定这是否是一种“更正确”的方法,或者我应该完全隔离每个测试。会有很多重复的代码(设置、配置),所以这就是导致我做出这个决定的原因,但我想要一些社区的意见、想法和想法。
所以把它放在我身上!(这也应该是社区维基??)
我正在玩我最喜欢的东西,xml(有礼貌地请你杀了我),最终的目标是将它保存在内部并以不同的方式使用数据(这是从另一个系统导出).我有goo有效,但是,我觉得它可以好多了.
public Position(XElement element)
{
Id = element.GetElementByName("id");
Title = element.GetElementByName("title");
}
Run Code Online (Sandbox Code Playgroud)
我正在考虑通过为它所代表的xml元素添加数据注释来使其更加自动化(hacky).比如这样的东西.
[XmlElement("id")]
public string Id { get; set; }
[XmlElement("title")]
public string Title { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后写一些反射/映射器代码,但两种方式都感觉......很脏.我应该关心吗?有没有更好的办法?也许反序列化是正确的方法?我只是觉得有一种方法可以做到这一点.
假设您正在创建一组对象来处理某些XML解析,并且它们都采用完全相同的对象,XElement ......就这样
public class User
{
public User(XElement xmlElement)
{
Id = xmlElement.GetElementValue("UserId");
}
public string Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想做的是一种像这样的方法..
public static T ToParsedObject<T>(this XElement xmlElement) where T : new()
{
return new T(xmlElement);
}
Run Code Online (Sandbox Code Playgroud)
我认为不可能像这样做一个静态(扩展方法),但我想把它作为一个我可以重用的方法.我厌倦了写作......
public static User ToUser(this XElement xmlElement)
{
return new User(xmlElement);
}
Run Code Online (Sandbox Code Playgroud)
任何想法或指导?
所以我有了这个疯狂的想法,我可以做一些很酷的工作.我厌倦了新的选择列表(项目,"blah","blahblah")所以我开始编写一个扩展方法(试图让它更强类型)这样的东西......
var selectList = projects.ToSelectList(p =>p.ProjectID, p =>p.ProjectName);
Run Code Online (Sandbox Code Playgroud)
扩展方法有点像这样
public static SelectList ToSelectList<T>(this IEnumerable<T> item,
Expression<Func<T, string>> textName,
Expression<Func<T, string>> valueProperty)
{
//do cool stuff
return new SelectList(items, dataTextField, dataValueField);
}
Run Code Online (Sandbox Code Playgroud)
我需要得到的是反射属性,所以我可以获取值并获取名称.我有什么想法可以做到吗?这样做的想法更好/更容易吗?我以前做过这个,但对于我的生活,我不记得我是怎么做到的.
编辑这需要一些澄清.我复制了一些在飞行中但未经过改进的代码,因此我更新了该代码以反映更正确的标准.
这必须有一个简单的答案 - 我有一段看起来像这样的代码......
condition = Expression.Call(memberAccess,
typeof(string).GetMethod("Contains"),
Expression.Constant(value));
lambda = Expression.Lambda(condition, parameter);
Run Code Online (Sandbox Code Playgroud)
它很棒...但我也想要一个NotContains.我是否必须编写扩展方法,或者只是简单地做一个方法![lambda]?
这是在我们的一次回顾中提出的,并希望获得一些额外的反馈和抽查.我们目前有许多基于布尔标志启用/禁用的视图(Model.IsNew是一个例子).我认为视图应该尽可能简单,控制器应该确定该视图的数据,而不一定是它的工作原理.我认为部分或全部的观点应该是 - 应该做什么和处理与确定应该显示/隐藏的内容的视图.一个非常基本的例子如下,但涵盖了这两方面,主要反映了我们所拥有的......
控制器有一对名为Details的方法(post/get).[Get] Details有一个参数,Id和[Post] Details接受id和viewmodel.在帖子中,该方法长约30行,检查有效模型,确定其是否为新,如果某个值发生了变化(触发重定向)等等(我认为这是不正确的).[Get] Details检查空id,填充必要的下拉菜单,没什么花哨的(我认为这是对的).详细视图本身包含一小部分逻辑:If(!Model.IsNew){RenderAction(History => History.Show(id);}(我认为这在if中是不正确的,Show应该知道要显示什么,无论它是否新的).加上这个是所述详细信息视图的布局没有完成两次.详细信息/添加几乎相同,
思想,观点,见解?
asp.net-mvc design-patterns dry single-responsibility-principle
现在我有一个基本的 IRepository,它接受 IConnect (包含一个字符串值)。我在获取 DI(结构图)来确定要使用哪个连接字符串时遇到问题。理论上,如果我在实体上使用属性,我可以编写一个注册表/扫描仪来确定这一点,但我想知道是否有更简单的方法来做到这一点?
现在我有这样的东西
ObjectFactory.Initialize(factory =>
{
factory.For<IConnect>().Singleton().Use<ConnectToMarket>()
.Ctor<string>("connectionString")
.Is(_marketConnectionString);
//and some other stuff
});
Run Code Online (Sandbox Code Playgroud)
有想法吗?
c# ×3
lambda ×2
asp.net-mvc ×1
dry ×1
generics ×1
linq ×1
mstest ×1
single-responsibility-principle ×1
ssrs-2008 ×1
structuremap ×1
unit-testing ×1
xml ×1