是否可以从给定的DOM元素中获取绑定的ViewModel JavaScript对象?
ko.applyBindings( gLoginViewModel, document.getElementById("login-form") );
ko.applyBindings( gLoginViewModel, document.getElementById("register-form") );
Run Code Online (Sandbox Code Playgroud)
和其他地方 - 在相当不相关的代码 - 这样的事情:
var viewModel = ko.getViewModel( formElement );
viewModel.someObservable( someData ); // observable available in all ViewModels
Run Code Online (Sandbox Code Playgroud)
如果我可以做以下事情会更好:
var viewModel = ko.getViewModel( someChildElement );
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我有部分代码,我想在用户未经过身份验证/未授权时抛出异常.
因此,我不想编写自己的NotAuthenticatedException和NotAuthorizedException,而是想知道是否还没有一些C#标准.
我可以想象很多程序会抛出类似的异常,如果每个人都"再次编写自己的轮子"就不会有用.
我想在C#中创建一个自定义Exception,但理论上我需要先做一点解析才能创建一个人类可读的ExceptionMessage.
问题是原始Message只能通过调用基础构造函数来设置Messsage,所以我不能提前做任何解析.
我尝试过像这样覆盖Message属性:
public class CustomException : Exception
{
string _Message;
public CustomException(dynamic json) : base("Plep")
{
// Some parsing to create a human readable message (simplified)
_Message = json.message;
}
public override string Message
{
get { return _Message; }
}
}
Run Code Online (Sandbox Code Playgroud)
问题是Visual Studio调试器仍然显示我传递给构造函数的消息,在这种情况下是Plep.
throw new CustomException( new { message="Show this message" } )
Run Code Online (Sandbox Code Playgroud)
结果是:

如果我将基础构造函数留空,它将显示一条非常通用的消息:
App.exe中出现未处理的"App.CustomException"类型异常
题
看起来Exception Dialog读取了一些我也没有访问权限的字段/属性.是否有任何其他方法可以在Exception的基础构造函数外部设置人类可读的错误消息.
请注意,我正在使用Visual Studio 2012.
在Visual Studio中的调试会话中,我深入到Business层中的某个位置,试图找出实体在尝试持久化更改时表现异常的原因.
在调用堆栈中此处获取对此实体所属的DbContext的引用确实很有帮助.
即,看看这个实体的状态是什么(Unchanged,Modified等).
所以我正在寻找这样的辅助方法:
var db_context = DbContextHelpers.GetDbContext(entity);
// after that I could do something like this
var state = db_context.Entry(entity);
Run Code Online (Sandbox Code Playgroud)
我可以在调试期间在立即窗口中使用这些东西.
任何建议?
额外的笔记
实体必须知道DbContext某个地方,因为它正在使用它来延迟加载导航属性?
就在最近我发现你可以在C#中做到这一点:
{
// google
string url = "#";
if ( value > 5 )
url = "http://google.com";
menu.Add( new MenuItem(url) );
}
{
// cheese
string url = "#"; // url has to be redefined again,
// so it can't accidently leak into the new menu item
if ( value > 45 )
url = "http://cheese.com";
menu.Add( new MenuItem(url) );
}
Run Code Online (Sandbox Code Playgroud)
而不是ie:
string url = "#";
// google
if ( value > 5 )
url = "http://google.com";
menu.Add( new MenuItem(url) …Run Code Online (Sandbox Code Playgroud) 我有一个扩展方法在DbContext我想要做的地方SqlBulkCopy.因此我需要一个SqlConnection.来自DbContext的连接来自类型DbConnection.在其他一些事情我试过这个:
var connection = new SqlConnection( dbContext.Database.Connection.ConnectionString);
Run Code Online (Sandbox Code Playgroud)
问题是密码丢失(可能出于安全原因).
我尝试的另一件事是向上转换:
var bulk_copy = new SqlBulkCopy( (SqlConnection)dbContext.Database.Connection );
Run Code Online (Sandbox Code Playgroud)
这实际上假设DbConnection是一个SqlConnection.在这个非常具体的案例中,它已经出错了.我正在使用MVC MiniProfiler将连接包装成一个EFProfiledDbConnection.EFProfiledDbConnection不从SqlConnection继承.
还有其他想法吗?提前致谢!
或任何其他功能来预处理您的数据:)
由于我的服务器端框架,我总是需要在发送数据之前调用JSON.stringify - 不必要的样板,你可以忘记添加.
现在我有:
$.ajax({
[...]
data: JSON.stringify({ someData: self.someData }),
[...]
});
Run Code Online (Sandbox Code Playgroud)
我会比较喜欢:
$.ajax({
[...]
data: { someData: self.someData },
[...]
});
Run Code Online (Sandbox Code Playgroud)
我已经研究过ajaxSetup,但到目前为止找不到解决方案......
更新
由于我需要这个的原因,请参阅以下这个问题.我可以在服务器端解决这个问题,但是现在我正在寻找一种方法来解决这个问题.
我非常喜欢新的Visual Studio 2015,但自动格式化对我来说有点过于广泛.特别是我喜欢控制空白:
public class TipStats
{
public int Points { get; set; }
public int Position { get; set; }
public decimal Percentage { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我只在我的设置中看到三个autoformat设置,我已经将它们全部勾选了 - 仍然是Visual Studio自动编码我的空白.
是否有任何其他隐藏设置我需要知道禁用所有空白自动格式化?
更新 作为@Saragis笔记忽略的声明语句空间的作品,有时这个具体的例子,但仍有都挺反对我想要的工作套用力量.
大多数选项似乎只定义了您希望自动编码的方式.我在寻找定义的设置,如果你想自动套用格式.
PS:我只有autoformatting的问题我仍然使用CTRL + K,F来手动格式化我的代码部分.
更新 - 在UserVoice上添加了功能请求
我最近开始使用WPF,我注意到你必须进行大量的转换(特别是对于事件).这是一个美学问题,但我想知道如果我使用扩展方法进行投射而不是使用普通投射会有多糟糕.
public static T Cast<T>(this object obj)
{
return (T)obj;
}
Run Code Online (Sandbox Code Playgroud)
这意味着我可以阻止一些嵌套的parantheses,并改变:
Console.WriteLine(((DataGridCell)e.OriginalSource).ActualHeight);
Run Code Online (Sandbox Code Playgroud)
至:
Console.WriteLine(e.OriginalSource.Cast<DataGridCell>().ActualHeight);
Run Code Online (Sandbox Code Playgroud)
我可能会忽略任何明显的缺点吗?人们在代码中遇到这种情况时会有多厌恶?:)
完全例外:
SqlAzureExecutionStrategy
为什么不由SqlAzureExecutionStrategy处理?特别是因为这发生在VIP掉期期间.
写一个DbExecutionStrategy处理这个的自己是一个好主意,还是我错过了什么?
更新 我从Azure云服务迁移到Azure Web应用程序,我看到此错误的次数严重下降.