这是上下文:
我尝试编写一个映射器,用于动态地将我的DomainModel对象转换为ViewModel Ojects.我得到的问题是,当我尝试通过反射调用泛型类的方法时,我得到了这个错误:
System.InvalidOperationException:无法对ContainsGenericParameters为true的类型或方法执行后期绑定操作.
有人可以帮助我找出错误在哪里吗?这将不胜感激
这是代码(我试图简化它):
public class MapClass<SourceType, DestinationType>
{
public string Test()
{
return test
}
public void MapClassReflection(SourceType source, ref DestinationType destination)
{
Type sourceType = source.GetType();
Type destinationType = destination.GetType();
foreach (PropertyInfo sourceProperty in sourceType.GetProperties())
{
string destinationPropertyName = LookupForPropertyInDestinationType(sourceProperty.Name, destinationType);
if (destinationPropertyName != null)
{
PropertyInfo destinationProperty = destinationType.GetProperty(destinationPropertyName);
if (destinationProperty.PropertyType == sourceProperty.PropertyType)
{
destinationProperty.SetValue(destination, sourceProperty.GetValue(source, null), null);
}
else
{
Type d1 = typeof(MapClass<,>);
Type[] typeArgs = { destinationProperty.GetType(), sourceType.GetType() };
Type constructed = …Run Code Online (Sandbox Code Playgroud) 我的团队目前正在为我们公司(Amilia.com)构建一个新的SaaS应用程序.我们处于"alpha"版本,应用程序构建为部署在Web场中.
对于我们的会话提供者,我们使用的是Sql Server模式(在DEV和TEST中),它似乎不是"可扩展的",因此我们正在寻找在asp.net中处理会话的最佳解决方案(在我们的例子中是mvc3).我们目前正在使用Sql Server,但由于许可证成本,我们希望切换到其他系统.
我们的目标是20 000 [EDITED,之前是100k]并发用户.在会话中,我们存储GUID,字符串和Cart对象(我们尝试尽可能少地保留它,这个对象允许我们在每个请求时保存3个查询).
以下是我发现的不同解决方案:
ASP.NET内置解决方案:
没有会话:在我们的案例中是不可能的
进行中模式:不能在webfarm中使用.(消除)
StateServer Mode:可以在webfarm中使用,但如果服务器出现故障,我会丢失所有会话.(消除)
具有使用多个服务器的PartitionResolver的StateServer模式(http://msdn.microsoft.com/en-ca/magazine/cc163730.aspx#S8)如果我看不清楚,如果其中一个服务器出现故障,只有我的一部分用户将失去他们的会议.
SqlServer Mode:可以在webfarm中使用,如果服务器出现故障,我可以恢复我的会话,但过程非常慢.而且,该数据库在负载很重的情况下成为瓶颈.
使用多个服务器的PartitionResolver的SqlServer模式(http://www.bulletproofideas.net/2011/01/true-scale-out-model-for-aspnet-session.html):如果其中一个服务器出现故障,只有一个部分用户将失去会话.如果用户在停机时间之间没有做任何事情,他将恢复他之前的会话,否则他将被重定向到登录屏幕.
定制解决方案
使用MongoDB作为会话存储(http://www.adathedev.co.uk/2011/05/mongodb-aspnet-session-state-store.html)这似乎是一个很好的权衡,但我对nosql的了解非常简陋我看不出缺点.
使用Memcached:问题与StateServer模式相同,如果memcached服务器出现故障,我的所有会话都将丢失.此外,我认为Memcached并不专用于存储会话状态?
使用分布式memcached,如ScaleOut(http://highscalability.com/product-scaleout-stateserver-memcached-steroids):似乎是最好的解决方案,但它需要花钱.
使用repcached和memcached(http://repcached.lab.klab.org/),我从未见过该解决方案的实现.
我们可以轻松地访问Azure并使用它提供的工具,但我们只有一个应用程序,因此如果微软将价格提高一倍,我们会立即将基础设施成本翻倍(但这是另一个主题).
那么,最好的方法是什么,或者至少你对此有什么看法?
我在 Windows 7 上。
我遵循了有关 heroku 的文档:https ://devcenter.heroku.com/articles/nodejs
当我执行
git push heroku master
它完全没有任何作用,我没有收到任何错误。我试图重新生成我的 ssh 密钥,删除所有内容并再次执行。总是一样。
抱歉提供的信息太少,但由于我没有错误消息,我真的很难弄清楚......
假设您正在使用 API,并且您需要设置一个值来启用或禁用组件。
你更愿意拥有:
control.isEnable = true
Run Code Online (Sandbox Code Playgroud)
或者
control.isDisable = false
Run Code Online (Sandbox Code Playgroud)
Imo,第一个似乎更“直观”,但你知道为什么吗?
asp.net-mvc ×2
.net ×1
boolean ×1
c# ×1
coding-style ×1
generics ×1
heroku ×1
node.js ×1
performance ×1
reflection ×1
scalability ×1
session ×1