开发人员必须"选择"通过显式使用来使类可序列化SerializableAttribute
.如果类默认可序列化,会出现什么问题?
首先发布stackoverflow,但我喜欢这个网站!...
我已经使用MVC 4成功创建了一个功能齐全的Azure混合模型应用程序.发布并且效果很好.现在我想将auth的ACS添加到我的站点.我已经按照所有步骤进行了操作,但是当我在模拟中运行应用程序时,它无法重定向到ACS并提供页面声明它无法找到login.aspx.
我创建了一个简单的网站解决方案,只是为了证明我的ACS设置正确并且工作得很好.我注意到这两个解决方案的web.config文件差别很大.
有人试过这样做吗?任何帮助,将不胜感激.
---------解决方案-----------
我终于把一切都搞定了. 关键是要删除WebMatrix.WebData引用,因为我不需要自己执行身份验证.以下内容来自MVC4发行说明.
当WebMatrix.WebData.dll包含在ASP.NET MVC 4应用程序的/ bin目录中时,它将接管表单身份验证的URL.将WebMatrix.WebData.dll程序集添加到应用程序(例如,在使用"添加可部署依赖项"对话框时选择"带有Razor语法的ASP.NET网页")将覆盖身份验证登录重定向到/ account/logon而不是/ account默认ASP.NET MVC帐户控制器所期望的/ login.
我只是回顾一些旧的代码(有一些空闲时间),我注意到一个相当冗长的switch语句.由于获得了新知识,我已经以下面的形式重构了它:
private Dictionary<string, Action> createView
{
get
{
return new Dictionary<string, Action>()
{
{"Standard", CreateStudySummaryView},
{"By Group", CreateStudySummaryByGroupView},
{"By Group/Time", CreateViewGroupByHour}
};
}
}
Run Code Online (Sandbox Code Playgroud)
你会考虑这个好习惯,还是仅仅是一个超级丰富和不必要的案例?我渴望确保我学到的新技术,仅仅为了它而不是聪明,并且它们实际上为代码增加了好处.
谢谢.
我正在编写一个XSL转换.我想编写一个模板,该模板匹配文档的所有子元素,除了一个特定节点.我的xml看起来像这样 -
<Document>
<NodeA></NodeA>
<NodeB></NodeB>
<ServiceNode></ServiceNode>
<NodeX></NodeX>
</Document>
Run Code Online (Sandbox Code Playgroud)
我想写一个匹配除所有节点模板ServiceNode
即NodeA
到NodeX
.如何编写这个Xpath来获取 -
<xsl:template match="ALL Nodex Except ServiceNode">
Run Code Online (Sandbox Code Playgroud) 只是想知道,添加LINQ方法的顺序是否重要?
例如.
using(MyDataContext context = new MyDataContext())
{
var user = context.Users
.Where(u => u.UserName.StartsWith("t"))
.OrderByDescending(u => u.CreatedDate)
.FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
这完全一样吗?
using(MyDataContext context = new MyDataContext())
{
var user = context.Users
.OrderByDescending(u => u.CreatedDate)
.Where(u => u.UserName.StartsWith("t"))
.FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
当然我可以逐个测试所有方法,但我想对逻辑有一些大概的了解.
所以:
再次感谢!
在他的博客中,什么时候对象可用于垃圾收集?,Reymond Chen写道
在该对象上执行方法期间,对象可以符合收集条件.
此外,Curt Nichols通过这个例子展示了同样的观点
public class Program
{
static void Main(string[] args)
{
new TestClass().InstanceMethod();
Console.WriteLine("End program.");
Console.ReadLine();
}
}
public sealed class TestClass
{
private FileStream stream;
public TestClass()
{
Console.WriteLine("Ctor");
stream = new FileStream(Path.GetTempFileName(), FileMode.Open);
}
~TestClass()
{
Console.WriteLine("Finializer");
stream.Dispose();
}
public void InstanceMethod()
{
Console.WriteLine("InstanceMethod");
StaticMethod(stream);
}
private static void StaticMethod(FileStream fs)
{
GC.Collect();
GC.WaitForPendingFinalizers();
Console.WriteLine("StaticMethod");
var len = fs.Length;
}
}
Run Code Online (Sandbox Code Playgroud)
输出如预期 -
Ctor
InstanceMethod
Finalizer
StaticMethod
ObjectDisposedException is thrown
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我无法理解GC如何收集临时 …
我用.NET 4.5创建了一个新的ASP.NET MVC应用程序.我已成功使用STS设置身份验证.身份验证流程正常,我可以在Thread.CurrentPrincipal上获取包含所需声明的ClaimsIdentity.
现在我需要引导令牌来保护对我的服务层的调用.我在identityConfiguration元素上将saveBootstrapContext设置为true.
<system.identityModel>
<identityConfiguration saveBootstrapContext="true">
Run Code Online (Sandbox Code Playgroud)
但是,ClaimsIdentity上的BootstrapContext属性始终为null.
var identity = Thread.CurrentPrincipal.Identity as ClaimsIdentity;
var context = identity.BootstrapContext; // context is always null
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?这被认为是直截了当的:(
- - - - - - 解决 - - - - - -
重新启动系统后,此问题已得到解决.请注意,在iisreset之后它没有解决.后来我更改了配置以使用Microsoft.IdentityModel而不是System.IdentityModel.我能够重现这种行为.再次重启后,我又能够再次获得引导令牌.其他人有同样的行为吗?
asp.net-mvc claims-based-identity wif ws-federation .net-4.5
在我的应用程序中,我们有一个跟踪记录器.我们在跟踪方法名称和参数值的大多数重要方法的开头和结尾添加了日志语句.现在这些跟踪语句使代码膨胀,阅读它们有点痛苦.
我正在考虑如何将代码的这一方面与业务逻辑分开.
今天我读到了Unity的拦截框架.如果可以使用通用记录器拦截我的方法调用并记录方法名称和参数值,我有一个想法.我不确定是否可以使用反射读取方法参数.Unity可以像这样使用吗?
另一个想法是运行T4代码生成引擎,在用特定属性修饰的所有方法的开头和结尾生成日志记录语句.由于我对T4知之甚少,有谁知道这是否可以实现?
有没有其他方法可以将日志记录代码与业务逻辑分开?
干杯,Unmesh
我只是尝试创建这个简单的实现:
class Test
{
private int abc = 0;
public class TestClass
{
private void changeABC()
{
abc = 123;
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我编译它,它会抱怨:
无法通过嵌套类型"B.Test.TestClass"访问外部类型"A.Test"的非静态成员
我不喜欢设置的解决方案: static int abc = 0;
还有其他解决方案吗?
我有xml看起来像这样 -
<Root>
<Fields>
<Field name="abc" displayName="aaa" />
<Field name="pqr" displayName="ppp" />
<Field name="abc" displayName="aaa" />
<Field name="xyz" displayName="zzz" />
</Fields>
</Root>
Run Code Online (Sandbox Code Playgroud)
我希望输出只包含那些具有重复name-displayName
组合的元素,如果有的话 -
<Root>
<Fields>
<Field name="abc" displayName="aaa" />
<Field name="abc" displayName="aaa" />
</Fields>
</Root>
Run Code Online (Sandbox Code Playgroud)
我怎么能用XSLT做到这一点?
.net ×4
c# ×3
asp.net-mvc ×2
wif ×2
xml ×2
xslt ×2
.net-4.5 ×1
acs ×1
aop ×1
azure ×1
linq ×1
linq-to-sql ×1
logging ×1
nested-class ×1
polymorphism ×1
refactoring ×1
t4 ×1
types ×1
xpath ×1