继承人我的问题:
我有两个项目 - 一个'常见'项目,其行为类似于具有各种支持代码的库,以及在许多调用中使用该项目的实际程序.我们将这些项目称为"共同"和"程序".他们都在同一个解决方案中.
在"Common"中,我有一个用于commo反射任务的类,比如创建一个实例.如果我调用GetExecutingAssembly,它将获得所有"公共"类型,但是当我使用GetEntryAssembly时,我得到"程序"类型.
虽然我当然可以编辑代码以使用2套asm,但我担心解决方案中不仅仅有2个项目的情况 - 比方说5(不知道为什么,但让我们去那里现在),我担心调用GetExecutingAssembly和GetEntryAssembly不会获得整个程序中的所有类型.
还有其他方法可以让所有类型都在解决方案中吗?
好的,我知道你在想什么,"为什么写一个你不希望别人使用的方法?" 对?
好吧,简而言之,我有一个需要序列化为XML的类.为了XmlSerializer实现它的魔力,该类必须具有默认的空构造函数:
public class MyClass
{
public MyClass()
{
// required for xml serialization
}
}
Run Code Online (Sandbox Code Playgroud)
所以,我需要拥有它,但我不希望人们使用它,所以是否有任何属性可用于将方法标记为"不使用"?
我正在考虑使用Obsolete属性(因为这可以阻止构建),但这看起来有点"错误",还有其他方法可以做到这一点,还是我需要继续坚持下去?:)
好吧,我接受了基思的回答,因为我心里想,我完全同意.这就是我首先提出这个问题的原因,我不喜欢拥有过时属性的概念.
有是仍然是一个问题,而我们则是在智能感知被通知,理想情况下,我们想打破建立,那么,有没有办法做到这一点?也许创建一个自定义属性?
好的,我当前项目中的另一个路障.
我的主页和内容页面中都没有表单元素,我倾向于在相关的内容中包含所有表单.
然而,在当前的项目中,我们有一个他们想要的页面.右上角的登录表单,以及内容中的问题表单.
试图搞定这个,我已经遇到了ASP.NET抱怨在母版页中需要单个表单元素的问题.TBH,我真的不明白为什么这是ASP.NET的要求,但是嘿嘿.
有谁知道我是否/如何让主页和内容页面包含独立工作的表单元素?
如果没有,您能提供有关如何获得所需外观/功能的建议吗?
大家好,
好的,进一步了解我的自定义控件冒险......
总之,这是我已经了解了自定义控件的三个主要"类".如果有任何错误,请随时纠正我!
好的,所以在玩自定义复合材料时,我发现了以下内容:
所以,我承认,我是新手,所以我可能会偏离上面提到的一些观点.
因为我知道有多少好的控制开发可以缩短整体开发时间,所以我很想在脑子里真正坚定.
我期待你的回答^ _ ^
我偶尔会从AJAX.NET应用程序中获取以下弹出窗口
Sys.WebForms.PageRequestManagerServerErrorException: An Unknown error occurred while processing the request on the server. The status code returned from the server was: 12031
从Microsoft kb,状态代码指示ERROR_INTERNET_CONNECTION_RESET,但它没有说明首先触发错误的根本问题是什么.
如何记录/跟踪/ etc生成弹出窗口的基础错误?
这是从我的另一个问题开始的.
基本上,一旦我有代码访问该文件(将在一分钟内审查答案)什么是最好的测试方法?
我正在考虑创建一个方法,它只生成大量的BackgroundWorker或者其他东西,告诉他们所有加载/保存文件,并测试不同的文件/对象大小.然后,从线程中获取响应以查看它是否失败/成功/使世界崩溃等.
你能提出任何关于最佳方法的建议吗?正如我之前所说,这对我来说有点新鲜:)
继ajmastrean的帖子:
我正在使用控制台应用程序来测试Debug.Asserts :)
我最初使用BackgroundWorker来处理线程(因为我已经习惯了来自Windows开发)我很快就意识到当我执行测试时需要完成多个操作(线程)才能继续,我意识到这将是让它做到这一点有点破解.
然后我跟进了ajmastrean的帖子并意识到我应该使用Thread类来处理并发操作.我现在将使用这种方法进行重构(虽然是一种不同的方法).
继我最近关于大型复杂对象作为Web服务结果的问题之后.我一直在考虑如何确保所有未来的子类都可以序列化为XML.
现在,显然我可以实现IXmlSerializable接口然后读取它的读者/写入器,但我想避免它,因为它意味着我需要在我想要的时候实例化读写器,并且99.99%的时间我将使用字符串,所以我可能只写自己的字符串.
但是,要序列化为XML,我只是用Xml来装饰类及其成员??? 属性(XmlRoot,XmlElement等),然后将其传递给XmlSerializer和StringWriter以获取字符串.这一切都很好.我打算把方法返回到一个通用的实用工具方法,所以我不需要担心类型等.
我担心的是:如果我没有使用必需的属性装饰类,则在运行时才会抛出错误.
有没有办法强制执行属性修饰?可以用FxCop完成吗?(我还没用过FxCop)
很抱歉让这个关闭的人有很多关闭,很多事要做!
绝对喜欢在测试用例中使用反射来实现它的想法,而不是诉诸于FxCop(喜欢把所有东西放在一起).. Fredrik Kalseth的答案很棒,感谢包含代码,因为它可能会让我有点挖掘弄清楚自己该怎么做!
+1给其他人类似的建议:)
我听过很多次,我们不应该将业务逻辑与其他代码或类似的语句混合在一起.我认为我编写的每一个代码(我的意思是处理步骤)都包含与业务需求相关的逻辑.
谁能告诉我究竟什么是业务逻辑?如何区别于其他代码?是否有一些简单的测试来确定什么是业务逻辑,什么不是?
一直在看这个,觉得我只是愚蠢想要更多的目光...
我需要生成一个完整的URL,(例如http://www.domain.com/controller/action?a=1&b=2),通常我只是Url.Action通过指定协议来做到这一点而没有问题:
var url = Url.Action("Action", "Controller", new { a = 1, b = 2 }, "http");
Run Code Online (Sandbox Code Playgroud)
我已经开始组建一个返回a的类,RouteValueDictionary以使这些匿名对象消失.但是,我不能让它与帮助者一起工作.
var x = Url.Action("Action", "Controller", new RouteValueDictionary(new { a = 1, b = 2 }), "http");
// "http://127.0.0.1/Controller/Action?Count=2&Keys=System.Collections.Generic.Dictionary%602%2BKeyCollection%5BSystem.String%2CSystem.Object%5D&Values=System.Collections.Generic.Dictionary%602%2BValueCollection%5BSystem.String%2CSystem.Object%5D",
var y = Url.Action("Action", "Controller", new { a = 1, b = 2 }, "http");
// "http://127.0.0.1/Controller/Action?a=1&b=2"
Run Code Online (Sandbox Code Playgroud)
任何导致facepalm的指针都非常感谢:)
更新:
最好澄清一下,在上面的示例中,我需要让' X'变量正常工作,因为RouteValueDictionary是在代码的其他地方创建的.假设RouteValueDictionary是正确的.
我只是不明白为什么这适用于匿名对象,但包裹在同一对象中的相同对象包含在一个RouteValueDictionary帮助器中.
你好再次女士们和男士们!
好的,继续我关于ASP.NET Web服务结果,代理类和类型转换的其他问题.我参与了我的项目,我需要在思考上限.
基本上,我们有一个大型,复杂的自定义对象,需要从Web服务返回并在客户端应用程序中使用.
现在,基于前面的讨论,我们知道这将采用代理类的形式作为返回类型.为了克服这个问题,我们需要基本上将属性从一个复制到另一个.
在这种情况下,这是我真的,真的,真的!喜欢避免!
所以,它让我思考,我们怎么能这样做?
我目前的想法是将对象完全序列化为XML,然后将XML作为字符串从Web Service返回.然后我们在客户端反序列化.这将意味着相当多的属性装饰,但至少两个端点的代码都很轻,即只使用.NET XML Serializer.
c# ×5
asp.net ×4
.net ×2
xml ×2
asp.net-ajax ×1
asp.net-mvc ×1
attributes ×1
coding-style ×1
controls ×1
forms ×1
master-pages ×1
reflection ×1
testing ×1
unit-testing ×1
web-services ×1
webforms ×1