我需要创建一个小应用程序或脚本来将.NET程序集安装到GAC中.我读过有几种方法可以做到这一点,包括:
gacutil.exe执行以下代码行:
new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll");
但是,如果我刚刚在机器上创建了相应的目录并将程序集复制到该目录中会发生什么?GAC目录的结构如下: C:\Windows\assembly\GAC_MSIL\Foo\<version#>__<public token>\Foo.dll
除了创建文件夹结构并将组件放入其中之外,上述两种方法是否有任何特殊之处?
可能重复:
链接到所有Visual Studio $变量
Visual Studio有很多环境变量,比如$(TargetFileName),但我似乎无法在MSDN或Google上找到所有这些变量的列表.
这样的清单是否存在?
注意:请参阅上面的重复问题答案(上面的链接),以获取MSDN上列表的链接.
我有一个大约1000个对象的ObservableCollection需要由最终用户过滤(搜索).用户必须能够按名称或员工ID进行搜索.列表控件使用FilteredEmployees和Employees在页面加载时加载了所有内容.
我目前设置如下:
public ObservableCollection<EmployeeServicesData> Employees { get; set; }
public ObservableCollection<EmployeeServicesData> FilteredEmployees { get; set; }
internal void FilterEmployee(string searchText, bool isByName)
{
if (searchText.Length > 0)
{
IEnumerabe<EmployeeServicesData> filter;
if (isByName)
filter = Employees.Where(x => x.Name.Length >= searchText.Length).Where(x => x.Name.Substring(0, searchText.Length) == searchText.ToUpper());
else
filter = Employees.Where(x => x.EmployeeNumber.ToString().Length > searchText.Length).Where(x => x.EmployeeNumber.ToString().Substring(0, searchText.Length) == text);
foreach (EmployeeServicesData employee in filter)
FilteredEmployees.Add(employee);
}
}
Run Code Online (Sandbox Code Playgroud)
在此方法之前处理卫生.
这闻起来不是很有效.我应该使用两种方法,还是有更好的方法来处理过滤?
我希望将Employees保持在未更改状态,这样我就可以将FilteredEmployees重新填充到完整列表,而无需再次访问DB.
如何在JavaScript中获取所选项目的值和文本?
这是我的组合框:
<select size="1" id="fTerminalType" name="fTerminalType">
<option value="AP">Airport</option>
<option value="PT">Port</option>
<option value="BS">Bus</option>
<option value="TR">Train</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我的JavaScript是这样的:
var TerminalType = document.getElementById("fTerminalType").value;
Run Code Online (Sandbox Code Playgroud)
在这里,我可以得到组合框的价值.但是,如何获取所选值的文本?例如,如果值是"BS",我需要文本"Bus".
我有一个待办事项列表,其中包含存储在同一记录中的5个任务.
Todo.task_one, Todo.task_two, etc.
Run Code Online (Sandbox Code Playgroud)
我想做的是能够循环遍历这样的字段
total_tasks = ["one", "two", "three", "four", "five"]
for tasks in total_tasks
Todo.task_#{tasks} = "text here"
end
Run Code Online (Sandbox Code Playgroud)
但是,除非我使用eval "Todo.task_#{tasks} = 'text here'"我知道的不安全,否则这不起作用.即使使用eval也不是真正的解决方案,因为我需要在视图中使用erb,所以我有点卡住了.
我将XML字符串发布到AIX机器上的端口.我有两种方法可以连接到这个盒子(TcpClient和HttpWebRequest).我有计时器让我知道AIX盒子处理我的请求和响应需要多长时间.
看起来TcpClient比HttpWebRequest快了100毫秒.我怀疑我的计时器位置可能不正确.无论哪种方式,我都不认为计时器位置会在响应时间上产生如此大的差异.
我的另一个想法是使用声明.也许他们保持连接打开时间比TcpClient更长.
已知TcpClient方法更快吗?
// TcpClient
TcpClient client = new TcpClient(host, port);
DateTime x = DateTime.Now;
NetworkStream stream = client.GetStream();
NetworkStream stream = client.GetStream();
stream.Write(request, 0, request.Length);
stream.Flush();
while ((count = stream.Read(buffer, 0, buffer.Length)) > 0)
response.Append(encoder.GetString(buffer, 0, count));
DateTime y = DateTime.Now;
totalMS = y.Subtract(x).TotalMilliseconds;
// HttpWebRequest
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(URI);
using (Stream webStream = webRequest.GetRequestStream())
{
webStream.Write(postdata, 0, postdata.Length);
webStream.Close();
DateTime x = DateTime.Now;
using (WebResponse webresponse = webRequest.GetResponse())
{
webresponse.Close();
DateTime y = DateTime.Now;
using (Stream rs …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种有效的方法来减少Javascript上的浮点数.我需要这个,因为我的输出占两个数字的百分比有时可能是99.4444444,而我只对"."之后的前两位数感兴趣.比如99.44
我目前的2个数字的百分比函数:
function takePercentage(x,y){
return (x /y) * 100;
}
Run Code Online (Sandbox Code Playgroud) 提高公司编码风格标准的最佳方法是什么?我们在这里以C#为例.
我想开发人员之间需要考虑很多差异.具体的可能是教育,经验和过去的编程语言.
一个人如何证明某事物是正确的呢?
一个人可能会说" 我把我的身体移到我用四轮车赚钱的地方 ".那么为什么说" 我开车上班 "更为"正确"呢?
有些人可能希望代码更明确,代码更多.有些人可能会喜欢更严格的代码
// Explicit
string text = defaultValue;
if (string.IsNullOrEmpty(text)) {
text = fallbackValue;
}
// Tighter
string text = defaultValue ?? fallbackValue;
Run Code Online (Sandbox Code Playgroud)
或者旧的保护性编程风格,在开始时检查错误情况,而不是将整个方法体包装在正的if子句中:
public string ChangeText(string text)
{
if (!string.IsNullOrEmpty(text))
{
// Do a lot of stuff
}
else {
throw new Exception();
}
}
// vs.
public string ChangeText(string text)
{
if (string.IsNullOrEmpty(text)) {
throw new Exception();
}
// Do a lot of stuff
}
Run Code Online (Sandbox Code Playgroud)
旧的"我有阅读此代码的麻烦"在这里有效吗?这与将Generics引入C#的情况相同,人们在阅读它时遇到了初步的麻烦.
某些开发人员不习惯的不可读代码和代码之间的界线在哪里?
Phil Haacks" 新语言关键词悲伤的7个阶段 "的哪一部分在这里有效点? …
我想试着象征我的iPhone应用程序的崩溃报告.
我从iTunes Connect检索了崩溃报告.我有我提交到App Store的应用程序二进制文件,我有作为构建的一部分生成的dSYM文件.
我将所有这些文件放在一个由聚光灯索引的目录中.
现在怎么办?
我试过调用:
symbolicatecrash crashreport.crash myApp.app.dSYM
Run Code Online (Sandbox Code Playgroud)
它只是输出崩溃报告中的相同文本,而不是符号化.
难道我做错了什么?
我有一个非常有趣的情况,我已经发现使用.net框架(任何版本)都不可能使用Singleton模式
看下面这段代码
namespace SingletonPattern
{
class Singleton
{
private static readonly Singleton instance = new Singleton();
private static int mcount = 0;
private Singleton() {
mcount += 1;
Console.WriteLine("Creating {0} instances of Singleton Class", mcount.ToString());
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
class program
{
static void Main()
{
for (int i = 0; i < 1000; i++)
{
System.Activator.CreateInstance(Type.GetType("SingletonPattern.Singleton"), true);
}
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在System.activator的帮助下,任何好友都可以打破单件模式.
谁有风险呢?
任何编写一些许可组件的人,其中许可证是作为单例模式实现的.
任何基于服务器的代码都使用Singleton模式.
也许我错了或者我的发现没有意义,但我只想分享并想知道你的看法?
.net ×2
c# ×2
javascript ×2
asp.net ×1
coding-style ×1
erb ×1
gac ×1
install ×1
ios ×1
ruby ×1
silverlight ×1
singleton ×1
symbolicate ×1
tcp ×1