在ASP.NET MVC应用程序中使用静态存储库的优缺点是什么?
让所有方法始终可用并不是更好 - >意味着类只被实例化一次而不是让多个控制器引用相同的存储库类及其方法?
或者我在这里弄错了什么?
所有帮助都非常感谢!
我正在尝试将带有'.svg'扩展名的svg图像添加到我的图表(使用d3创建的另一个svg图像).
这是代码:
d3.select("#chart1 svg")
.append("svg:image")
.attr("xlink:href", "img/icons/sun.svg")
.attr("width", 40)
.attr("height", 40)
.attr("x", 228)
.attr("y",53);
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在设置"xlink:href"属性,但是d3会在浏览器中将其更改为href:
<image href="img/icons/sun.svg" width="40" height="40" x="228" y="53"></image>
Run Code Online (Sandbox Code Playgroud)
事实上,如果我使用png扩展名,这段代码就能完美运行.任何的想法?
这段代码:
IEnumerable<string> lines = File.ReadLines("file path");
foreach (var line in lines)
{
Console.WriteLine(line);
}
foreach (var line in lines)
{
Console.WriteLine(line);
}
Run Code Online (Sandbox Code Playgroud)
ObjectDisposedException : {"Cannot read from a closed TextReader."}如果第二个foreach执行则抛出一个.似乎返回的迭代器对象File.ReadLines(..)不能多次枚举.您必须通过调用获取新的迭代器对象File.ReadLines(..),然后使用它进行迭代.
如果我File.ReadLines(..)用我的版本替换(参数未经验证,那只是一个例子):
public static IEnumerable<string> MyReadLines(string path)
{
using (var stream = new TextReader(path))
{
string line;
while ((line = stream.ReadLine()) != null)
{
yield return line;
}
}
}
Run Code Online (Sandbox Code Playgroud)
可以多次迭代文件的行.
使用调查.Net Reflector表明,File.ReadLines(..)调用private的File.InternalReadLines(TextReader reader)实现创建了实际的迭代器.作为参数传递的读者MoveNext()在迭代器的方法中用于获取文件的行,并在到达文件末尾时被释放.这意味着一旦 …
我有问题List<T>.Reverse()和Reverse(this IEnumerable<TSource> source).看看代码:
// Part 1
List<int> list = new List<int> { 1, 2, 3 };
foreach (int x in list)
Console.Write(x);
Console.WriteLine();
list.Reverse();
foreach (int x in list)
Console.Write(x);
Console.WriteLine();
list.Reverse();
// Part2
IList<int> ilist = list;
foreach (int x in list)
Console.Write(x);
Console.WriteLine();
ilist.Reverse();
foreach (int x in ilist)
Console.Write(x);
Console.WriteLine();
ilist.Reverse();
Run Code Online (Sandbox Code Playgroud)
我的结果:
123
321
123
123
Run Code Online (Sandbox Code Playgroud)
因为-Part1 Reverse()是List<T>.Reverse(),Reverse()-Part2是Reverse(this IEnumerable<TSource> source)
我要List<int>.Reverse()在Part2中执行的IList<int>.我怎么能这样做?
我没有使用camera.rotation或lookAt()函数旋转相机,而是想直接将相机矢量传递给相机...是否可以直接设置相机外观矢量并且可以读取外观从相机矢量?
当JetBrains推出Project Rider-EAP时,我真的很兴奋.我尝试过的第一件事是让一个Xamarin-iOS项目在Rider-EAP中运行,但它并不是开箱即用的.
更新1:此问题现已列为EAP 2中修复的关键错误:https://youtrack.jetbrains.com/issue/RIDER-618
1.问题(已修复)项目未加载,但无法找到Xamarin.iOS.targets.
我用一个简单的符号链接修复了这个问题:
ln -s /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/ “/Applications/Rider EAP.app/Contents/lib/ReSharperHost/macos-x64/mono/lib/mono/xbuild/”
Run Code Online (Sandbox Code Playgroud)
2.问题 参考未正确加载.因此,整个语法突出显示和其他一切都被打破了.
请参见屏幕截图:未正确加载引用
我也得到以下错误:
Error:null: Error initializing task MakeDir: Could not load file or assembly '/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Tasks.dll' or one of its dependencies
Run Code Online (Sandbox Code Playgroud)
将xbuild切换到mono 4.2.2可以消除错误但不能解决问题.
PS:它为Xamarin Android项目正确加载引用.
我可以在SVG中使用线性渐变,其中defs-section如:
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<linearGradient id="myLinearGradient1"
x1="0%" y1="0%"
x2="0%" y2="100%"
spreadMethod="pad">
<stop offset="0%" stop-color="#00cc00" stop-opacity="1"/>
<stop offset="100%" stop-color="#006600" stop-opacity="1"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="100" height="100"
style="fill:url(#myLinearGradient1)" />
</svg>
Run Code Online (Sandbox Code Playgroud)
我可以使用没有defs-section的线性渐变吗?我发现这样的事情:
<rect style="fill:lineargradient(foo)">
Run Code Online (Sandbox Code Playgroud) 我在WPF中有一个TabControl.我想找到更改标签时发生的事件.这个活动的名字是什么?
如果我只是想做以下事情,看看有什么叫我,
var st = new StackTrace();
var callingMethod = st.GetFrame(1).GetMethod()
Run Code Online (Sandbox Code Playgroud)
获得特定框架会更便宜吗?
var sf = new StackFrame(1);
var callingMethod = sf.GetMethod()
Run Code Online (Sandbox Code Playgroud)
我测试了下面的代码,但我不确定我的方法是否合理.
Stopwatch sw = Stopwatch.StartNew();
for (int i = 0; i < 100000; i++)
{
var method = new StackFrame(1, false);
}
sw.Stop();
Trace.WriteLine(sw.ElapsedMilliseconds);
sw = Stopwatch.StartNew();
for (int i = 0; i < 100000; i++)
{
var method = new StackTrace().GetFrame(1);
}
sw.Stop();
Trace.WriteLine(sw.ElapsedMilliseconds);
// Results
// StackFrame: 850
// StackTrace: 1334
Run Code Online (Sandbox Code Playgroud)
我的方法(和结果)是否正确?
编辑
我会使用Caller Information属性,但是,我暂时停留在.NET 3.5中.
c# ×6
.net ×3
c#-4.0 ×2
svg ×2
algorithm ×1
ambiguity ×1
asp.net-mvc ×1
benchmarking ×1
callstack ×1
camera ×1
d3.js ×1
events ×1
gradient ×1
image ×1
interface ×1
ios ×1
javascript ×1
list ×1
macos ×1
methods ×1
mono ×1
performance ×1
rider ×1
tabcontrol ×1
three.js ×1
vector ×1
wpf ×1
xamarin ×1
xlink ×1