我有很多项目,还有几个解决方案(项目"池"的子集).有时候,只有特定的测试才能使用.sln.
问题:
NUGet与每个解决方案分别联系在一起.
NUGet喜欢在.sln所在的文件夹下的"packages"文件夹中找到下载.这不太理想.我有一个用于此类事物的库文件夹(一个用于池中的所有项目).我很高兴有一个NUGET子文件夹离开这个库区域.
我喜欢NUGet的便利,但我不确定它在大型项目解决方案中.
可能答案:
一种想法是只为NUGET提供.sln和.csproj,然后按照正常情况引用包.你失去了一些自动化方式.
我们不加包源代码管理,并说我们重建项目从源头控制,然后将的NuGet下载完全相同的版本要求(乱)...我甚至不知道的NuGet以这种方式工作.这将需要对nuget有效载荷提供者进行高度信任.不是个好主意.
但是在NuGet 1.4中,我们计划将它集成到NuGet中.当您尝试构建项目时,我们将添加一个新功能来基于每个项目中的packages.config文件恢复任何缺少的包和packages文件夹.
......至少有一条前进的道路.遗憾的是,对于具有相同库文件夹的多个解决方案而言,这是一团糟.
在银光中是否存在相同的情况?
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies(v=VS.95).aspx
还有另一种方法吗?
这是一篇关于如何在混合下设计时间的文章...但是如何在运行时?
http://joshsmithonwpf.wordpress.com/2010/01/06/the-ultimate-hack-for-silverlight-in-blend/
看起来不可能这样:
http://forums.silverlight.net/p/22050/77847.aspx
http://forums.silverlight.net/t/22050.aspx/1?Get+a+list+of+loaded+assemblies
我非常喜欢匿名类型语法.例如
new {a = 1, b = 2, c = 25.2}
Run Code Online (Sandbox Code Playgroud)
如果有一个像Expando或Dictionary这样的版本,它会很整洁.有办法吗?
是否可以将System.Diagnostics.DebuggerDisplay属性分配给Dictionary的定义?
例如
Dictionary<int, SomeClass>
[System.Diagnostics.DebuggerDisplay("{Info,nq}")]
public class SomeClass{
string code {get;set;}
public string Info { get { return "info" + code; }}
}
// place an attribute here??
[System.Diagnostics.DebuggerDisplay("{???,nq}")]
Dictionary<int, SomeClass> dict = new Dictionary<int, SomeClass>();
Run Code Online (Sandbox Code Playgroud) 是否可以在IL Generator中使用泛型?
DynamicMethod method = new DynamicMethod(
"GetStuff", typeof(int), new Type[] { typeof(object) });
ILGenerator il = method.GetILGenerator();
... etc
Run Code Online (Sandbox Code Playgroud) 只需阅读TransactionScope实现.
有人可以确认这种技术是由客户端.net驱动,还是需要特定数据库供应商提供的特殊功能?这只是一个SQL Server吗?
症状:没有为类型定义序列化程序:System.Array
由于所有C#数组都继承自Array类,我认为这在ProtoBuf-net中是有效的
[ProtoMember(1)]
public Array SomeKindOfArray = new int[]{1,2,3,4,5};
[ProtoMember(2)]
public List<Array> SomeKindOfList = new List<Array>();
Run Code Online (Sandbox Code Playgroud)
我应该使用RuntimeTypeModel注册Array吗?
m.Add(typeof (Array), true); // does not seem to help
Run Code Online (Sandbox Code Playgroud)
尝试:
new int[]{1,2,3,4} // works
(object)new int[] { 1, 2, 3, 4 } // does not work
(Array)new int[] { 1, 2, 3, 4 } // does not work
Run Code Online (Sandbox Code Playgroud)
另一种可能的解决方案(现在找不到SO url):
有一个基类型类项的列表.
包裹每种类型.例如
class TheBase{}
class ArrayOfInt { public int[] value;}
Run Code Online (Sandbox Code Playgroud)
然后,它将成为转换到包装器列表之一.有更简单的方法吗?
可以像这样在C#中定义别名
using kvp = System.Collections.Generic.KeyValuePair<string, string>;
var pair = new kvp("key", "value");
Run Code Online (Sandbox Code Playgroud)
Microsoft也定义了别名:
int i;
Int32 i2;
Run Code Online (Sandbox Code Playgroud)
我们如何定义命名空间中可用的别名?这是可配置的吗?
这个问题具体是关于别名......所以......不希望使用继承作为代理.在很多情况下我很满意......但是当你想要最好的描述性名称和速记版本时,我都不满意.
假设我们有几个程序集,它们都实现了IAnimal,我们想去一个地方找出其他IAnimal实现的存在.
特征:
我们不希望在集会之外进行预先知识
程序集中可能有一个寄存器类/方法
最好不要使用反射.到目前为止,这似乎是唯一的方法
讨论:
我想通过继承静态地做这个,但是,我不知道汇编级初始化序列.
您可以在.net基类库中找到的模式是ThrowHelper的模式.实质上,它减少了每种方法的字节码量.
无论如何,我想知道是否有一个属性指令来阻止throw Helper中的错误停止在帮助程序内部.我更喜欢调试器停在主叫线上.
即
ThrowHelper.ThrowAnException ()
Run Code Online (Sandbox Code Playgroud)
而不是在ThrowAnException()内
c# ×10
.net ×9
ado.net ×1
alias ×1
il ×1
ilgenerator ×1
nuget ×1
protobuf-net ×1
reflection ×1
silverlight ×1
transactions ×1