小编zab*_*lus的帖子

实现 IEnumerator<T> GetEnumerator() 和 IEnumerator IEnumerable.GetEnumerator() 的动态生成类

我有 Reflection.Emit 的问题。我想要动态创建的类,它具有 ICollection 的简单实现。我定义的所有方法都很好,而不是接下来的两个: public IEnumerator GetEnumerator() & IEnumerator IEnumerable.GetEnumerator() 下一个代码显示了我想要在我的动态类中的内容:

public class SomeClassThatIsIEnumerable<T> : IEnumerable<T>
{
    public IEnumerator<T> GetEnumerator()
    {...}

    IEnumerator IEnumerable.GetEnumerator()
    {...}

}
Run Code Online (Sandbox Code Playgroud)

这是从反射器的输出打开我的动态程序集:

public class SomeClassThatIsIEnumerable<T> : IEnumerable<T>
    {
        public IEnumerator<T> GetEnumerator()
        {
           ...
        }

        IEnumerator GetEnumerator()
        {
           ...
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在以这种方式定义我的课程:

TypeBuilder myType = module.DefineType("myType"...);
myType.AddInterfaceImplementation(typeof(IEnumerable));
myType.AddInterfaceImplementation(typeof(IEnumerable<T>));
myType.AddInterfaceImplementation(typeof(ICollection<T>));
myType.DefineMethodOverride(myDefineGetEnumerator(...),typeof(IEnumerable).GetMethod("GetEnumerator");
myType.DefineMethodOverride(myDefineGetGenericEnumerator(...),typeof(IEnumerable<T>).GetMethod("GetEnumerator);
//Definitions of other ICollection methods
//Define GetEnumerator is looks like this:
MethodBuilder method = myType.DefineMethod("GetEnumerator", MethodAttributes.Final | MethodAttributes.Virtual...)
ILGenerator il = method.GetILGenerator();
// adding opcodes …
Run Code Online (Sandbox Code Playgroud)

c# ienumerable ienumerator reflection.emit

5
推荐指数
1
解决办法
1305
查看次数

System.Diagnostics.Process.Start问题"无法找到特定文件"

当我在计算机上启动以下代码时,它可以正常工作

string target = e.Link.LinkData as string;
target = System.IO.Directory.GetCurrentDirectory() + target;
System.Diagnostics.Process.Start(target);
Run Code Online (Sandbox Code Playgroud)

target - 文件的非绝对路径.文件存在.清除虚拟机异常"无法找到特定文件"生成.

有什么建议?
更新
我强调在我的电脑上工作正常.为什么它不适用于另一台计算机

c#

3
推荐指数
1
解决办法
7997
查看次数

通过 cmd/bat 从文件中获取产品版本

我有一个包含版本资源的文件,其中填充了文件版本/产品版本字段。我需要通过 BAT 文件检索产品版本。例如,bat 文件的输出中有 ProductVersion 1.0.1 的文件,我不想有字符串“101”或“1.0.1”

cmd getfileversion

3
推荐指数
1
解决办法
8162
查看次数

QAbstractTableModel数据返回HTML代码以显示

我希望我的AbstracttableModel子类data()方法返回html,即

PreText<b>Text</b>PostText
Run Code Online (Sandbox Code Playgroud)

并且此文本必须在html中显示为int表:PreText Text PostText

我怎样才能做到这一点?

qt qabstractitemmodel qabstracttablemodel qabstractlistmodel

1
推荐指数
1
解决办法
950
查看次数