来自PHX Software的 SQLite 将托管程序集(System.Data.SQLite)与非托管DLL(SQLite 32位或64位dll)组合到一个文件中,并设法将它们链接在一起.
我该怎么做呢?我是否需要将托管程序集嵌入到非托管dll中,反之亦然?
即.我的问题是:
我问这个的原因是我想构建一个托管的zLib包装器.我知道在.NET中有托管类,但从经验来看它们有点受限(并且有点愚蠢,因为它们没有做适当的缓冲),所以我想创建自己的副本,也因为我想要学习如何做到这一点.
那么有谁知道我需要做什么以及如何做?
我发现了以下内容:
我将尝试这个,但任何其他可用的信息也会很好.
我想画一条厚度为j2me的线.通过将Pen width设置为厚度值,可以在桌面java中轻松实现.但是在j2me中,Pen类不支持宽度.我的想法是从我拥有的线生成一个多边形,类似于我想要绘制的厚度线.在图片中,左边是我所拥有的,带有点的线.在右边是我想要的,一个多边形,当填充时,一条线有厚度.谁能知道如何从线生成多边形?
alt text http://www.freeimagehosting.net/uploads/140e43c2d2.gif
如果我在当地有一个相当大的Mercurial项目,并希望进行实验,我是否可以安全地制作一份本地副本并在那里工作?
例如,假设我这样做:
这样安全吗?或者在克隆时是否生成了一些唯一的ID?
一个项目相当大,服务器的连接速度相当慢,或者看起来如此,所以从中央服务器完成一个完整的克隆需要很长时间.
是否有任何软件包可用于在我自己的服务器上托管Mercurial存储库,除了它附带的非常基本的脚本?
我查看了Mercurial 上的PublishingRepositories维基页面,该列表中唯一可行的替代方案是hgwebdir我设置的脚本,但它相当基本.
有没有人为Mercurial托管制作更好的网站软件?
我阅读了Process.StandardOutput的文档,其中包含以下引用:
如果父进程在p.StandardOutput.ReadToEnd之前调用p.WaitForExit并且子进程写入足够的文本来填充重定向的流,则可能导致死锁条件.
所以我很想知道.如果我还害怕在某些情况下可以填充StandardError,那么正确的方法是什么?
我是否必须使用循环来交替读取标准输出和错误,以避免填充,或者这个简单的代码是否足够:
string error = proc.StandardError.ReadToEnd();
string output = proc.StandardOutput.ReadToEnd();
bool didFinish = proc.WaitForExit(60000);
Run Code Online (Sandbox Code Playgroud)
在发布了一些答案后编辑
那么这是正确的方法吗?
var output = new StringBuilder();
proc.OutputDataReceived += (s, e) => output.Append(e.Data);
proc.BeginOutputReadLine();
string error = proc.StandardError.ReadToEnd();
bool didFinish = proc.WaitForExit(60000);
Run Code Online (Sandbox Code Playgroud)
然后我只在进程实际完成时才使用stringbuilder内容.
这是正确的方法吗?
为什么很多人都这样做:
public enum EmployeeRole
{
None = 0,
Manager = 1,
Admin = 2,
Operator = 3
}
Run Code Online (Sandbox Code Playgroud)
而不只是做:
public enum EmployeeRole
{
None,
Manager,
Admin,
Operator
}
Run Code Online (Sandbox Code Playgroud)
有优势吗?
最初,我有以下代码:
<TextBox Text="{Binding LengthUnit, Mode=OneWay}" IsReadOnly="True" Background="{x:Static SystemColors.ControlBrush}" />
Run Code Online (Sandbox Code Playgroud)
我知道我可以定义这样的样式:
<Style TargetType="{x:Type TextBox}" x:Key="readOnlyTextBox">
<Setter Property="Background" Value="{x:Static SystemColors.ControlBrush}"></Setter>
<Setter Property="IsReadOnly" Value="True"></Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
这样我就可以写:
<TextBox Text="{Binding LengthUnit, Mode=OneWay}" Style="{StaticResource readOnlyTextBox}" />
Run Code Online (Sandbox Code Playgroud)
因为此文本框是只读的,所以绑定模式不能是双向的.那么,是否可以使用此样式将OneWay绑定作为我的TextBox的默认值?
编辑:我需要将绑定模式更改为OneWay,因为我的属性是get-only,而不是因为我标记了TextBox只读.但是,如果可能的话,我仍然希望将文本框的默认绑定模式更改为OneWay.
这是我遵循你的建议的代码,但它不起作用.我错过了什么吗?
public class ReadOnlyTextBox : TextBox
{
static ReadOnlyTextBox()
{
TextBox.TextProperty.OverrideMetadata(typeof(ReadOnlyTextBox),
new FrameworkPropertyMetadata() { BindsTwoWayByDefault = false, Journal = true, DefaultUpdateSourceTrigger = UpdateSourceTrigger.Explicit });
}
public ReadOnlyTextBox()
{
base.Background = SystemColors.ControlBrush;
base.IsReadOnly = true;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一组类库,以便在我们要创建的应用程序之间共享代码.
但是,我无法正确创建项目,我无法看到我做错了什么.
让我来看看我用来重现这个的步骤,也许这里有人可以看到我做错了什么:
这是有效的,如果我选择Run-> Debug菜单项,我可以在模拟器中看到应用程序打开.
我们假设我现在要在iPhone上测试它,所以我访问工具栏中的下拉列表,选择"Debug | iPhone"构建目标,并立即将类库项目变为灰色:
(不是内置的主动配置)
如果我右键单击解决方案,请检查配置映射,当选择与模拟器或iPhone相关的任何内容时,类库将完全从视图中消失,并且无法选择构建.
构建目标下拉列表现在还有6个项目,iPhone的调试,发布,调试/发布以及模拟器的调试/发布.显然,只有不适用于iPhone或模拟器的Debug和Release才能构建类库.
我在这做错了什么?
在一个我没有能够寻找解决方案的奢侈品的另一个项目中,我最终创建了一个空的通用项目,是否是"正确"的方法来缓解这个问题?
我尝试使用ClearScript加载TypeScript编译器以编译一些基本的TypeScript代码.
不幸的是,在执行TypeScript编译器源时,我收到此错误:
'WScript'未定义
这是我使用的LINQPad程序,将ClearScript dll和TypeScript编译器文件放在.linq程序旁边:
void Main()
{
using (var js = new Microsoft.ClearScript.Windows.JScriptEngine(Microsoft.ClearScript.Windows.WindowsScriptEngineFlags.DisableSourceManagement))
{
var typeScriptSource = File.ReadAllText(Path.Combine(Path.GetDirectoryName(Util.CurrentQueryPath), "tsc.js"));
js.Execute(typeScriptSource);
const string typeScriptCode = @"
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return ""Hello, "" + this.greeting;
}
}
function test()
{
var greeter = Greeter(""world"");
return greeter.greet();
}
";
js.Script.TypeScript.Compile(typeScriptCode);
object result = js.Script.test();
result.Dump();
}
}
#region Copy ClearScript to correct location …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Json创建配置文件,该文件将保存各种类型对象的配置.
考虑这个文件:
{
"cameras": [
{
"type": "Some.Namespace.CameraClass",
"assembly": "Some.Assembly",
"configuration": {
"ip": "127.0.0.1",
"port": 8080
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
在运行时,我将使用两个"类型"和"程序集"属性来构造支持特定接口的对象,然后我想将配置加载到该对象中.
但是,在编译时我不知道"配置"将映射到的类型.我想将它保留为json"属性"并将其提供给相机对象,然后让该对象将json反序列化为正确的类型.
因此,我想将包含特定相机类型配置的配置文件的一部分"随身携带"到对象本身,然后让它处理它,像我一样把它当作黑盒子处理它.应该保留该部分的结构,因为在为每个摄像机实现创建配置类型时我想要完全保真,甚至在必要时添加子对象.
对于这个特定的相机,我会配置一个IP地址和一个端口,对于其他一些相机我需要授权数据,而对于其他一些相机则完全不同.
我希望保持这种配置的属性能够直接获取Json,仍然是一个字符串.
这可能吗?
这是一个LINQPad示例,其中有一些位被注释掉:
void Main()
{
const string configurationFile = @"[
{
""type"": ""UserQuery+Camera1"",
""configuration"": { ""id"": 10 }
},
{
""type"": ""UserQuery+Camera2"",
""configuration"": { ""name"": ""The second camera"" }
}
]";
var cameras = JsonConvert.DeserializeObject<Camera[]>(configurationFile);
foreach (var camera in cameras)
{
var type = Type.GetType(camera.Type);
var instance = Activator.CreateInstance(type, new object[0]) as ICamera; …Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×2
mercurial ×2
2d ×1
assemblies ×1
binding ×1
binding-mode ×1
branch ×1
clearscript ×1
clone ×1
coding-style ×1
deployment ×1
dll ×1
drawing ×1
dvcs ×1
embed ×1
enums ×1
geometry ×1
graphics ×1
hosting ×1
json.net ×1
managed ×1
monodevelop ×1
process ×1
subprocess ×1
textbox ×1
typescript ×1
unmanaged ×1
waitforexit ×1
wpf ×1
xamarin.ios ×1