Roslyn笔记

.Net Core项目中引用 Console 类出现错误:CS0103

原因是因为在.Net Core中, Console 类放在了 System.Console.dll 中,一般教程是从object类的元数据(即System.dll)中调用的:

MetadataReference[] references = new MetadataReference[]
{
MetadataReference.CreateFromFile(typeof(object).Assembly.Location),
}

获得当前AppDomain所有引用的Assembly组件的方法:

 var assemblies = AppDomain.CurrentDomain.GetAssemblies()
  .Where(asm => !asm.IsDynamic && string.IsNullOrWhiteSpace(asm.Location))
  .Select(asm => MetadataReference.CreateFromFile(asm.Location))
  .Cast<MetadataReference>()
  .ToArray();
阅读更多

C#、WPF笔记

Q8:WPF中如何RasieEvent

//示例,对于UI控件主动抛出一个MouseButtonEvent的事件:
this.RaiseEvent(new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left) {RoutedEvent = UIElement.PreviewMouseDownEvent, Source = this });
                

Q7:WPF绑定的属性必须是 public 的

有一个类库,我用internal 关键字不公开里面的类,然后用[assembly: InternalsVisibleTo(“MyApp”)] 共享给友元程序MyApp使用 。MyApp是个WPF程序,在里面新建继承了原来库中的类,并把它改造成了可观测的(Observable)以便于WPF的控件进行绑定。

一切都正常也没有报错,但是在我运行之后我发现控件无法从绑定源获得更新,找了半天才发现这个原因。可以参考一下微软和Stack Overflow 的信息:Binding Sources OverviewBinding to an internal property?

Q6:如何保护DotNet程序不被反编译

下面这段话来自: 链接地址

将程序集中的相关Method(方法)编译成Unmanaged(非托管代码)

下面介绍的内容是不管你是菜鸟,或是高手,都无法得到核心代码的方它可称之为终极的保护手段,因为它就是“非托管代码”。

查看更多
阅读更多

Gitlab笔记

安装完成后无法启动

需要执行初始化命令:gitlab-ctl reconfigure 等待完成即可,另外可以配置/etc/GitLab/GitLab.rb 参数,具体的参数列表可以查询官网的说明。

如何备份版本库并转移到U盘

先用gitLab-rake gitLab:backup:create 备份在默认文件路径
再用 cp -r/var/opt/GitLab/backups /你的目录 即可完成转移

阅读更多

Linux学习笔记

Please install the gcc make perl packages…

CentOS_7_64 GNOME环境下(含开发工具),安装某些程序包时提示缺少gcc make perl 包。
原因:缺少前置依赖。
解决方法:安装gcc,命令行如下,安装装过程中会出现两次提示,均输入y确认继续。

yum install gcc perl make
阅读更多

Flexsim学习笔记

建模小技巧:

// 获得场景中高亮的对象
treenode Perspective = node("?Perspective",views());
treenode selobj = selectedobject(Perspective);
if(objectexists(selobj))
{
   // 内容
}

// 打开用户命令和用户事件工具的脚本:
createview("VIEW:/standardviews/tools/UserCommands",
			"MAIN:/project/model/Tools/precision",
			"MAIN:/project/model/Tools/precision");
createview("VIEW:/standardviews/tools/UserEvents",
			"MAIN:/project/model/Tools/precision",
			"MAIN:/project/model/Tools/precision");

// 访问群组对象(例如设置flag属性)
string groupname = "Sources";
int members = groupnummembers(groupname);
for(int i=1;i<=members;i++)
{
    treenode o = groupmember(groupname,i);
    switch_selected(o,true);
}

// 获得AGV 控制点第一个资源对象的引用
treenode resource = ownerobject(tonode(get(first(node("/Location",connections(cp))))));


// 判断一个对象的类型(例如 AGV路径是不是CurvedPath)
treenode obj = rank(model(),10);
if(stringsearch(getname(first(classes(obj))),"CurvedPath",0)>0)
{
    // 内容
}

// AGV 刷新路径的空间更改
treenode path01 = ...;
function_s(path01 ,"finalizeSpatialChanges");
阅读更多

Unity3D学习笔记

Unity3d can’t add the script component XXX because the script class cannot be found.

写好一个Script,将它加入某个GameObject 发生报错:Unity3d can’t add the script component XXX because the script class cannot be found.

阅读更多