CodeSmith中“自定义属性(Custom Property)”的一个疑问?求解

gaijf 2010-05-20 11:16:00
CodeSmith中的自定义属性(Custom Property)

先看相关文章
http://www.applestar.net/index.php/developer-list/42-dotnet/151-applestar.html

我的问题是:

在如何实例化程序集中的一个类,并调用该对象的方法?

其它:

this.Response.WriteLine(AssemblyToLoad)
上面例子中能获取程序集的信息
...全文
203 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaijf 2010-05-21
  • 打赏
  • 举报
回复
wuyq11:

问题解决了!后面出的问题是因为被访问的类没有构造函数,所以对象实例为null。
xiaodru 2010-05-21
  • 打赏
  • 举报
回复
tuijian

http://blog.csdn.net/dalao812/archive/2007/08/17/1748124.aspx
gaijf 2010-05-21
  • 打赏
  • 举报
回复
object obj = AssemblyToLoad.CreateInstance("NameSpace.StringUtil1", true);
在这行提示出错,AssemblyToLoad的方法里没有GetExecutingAssembly()
gaijf 2010-05-21
  • 打赏
  • 举报
回复
楼上,不行啊!codesmith中提示:未将对象引用设置到对象的实例

object obj = AssemblyToLoad.CreateInstance("NameSpace.StringUtil1", true);

Type type = obj.GetType();

MethodInfo m = type.GetMethod("Testing",BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);

if (m != null)
{
Object[] args = new Object[1];
args[0] = "Test";
m.Invoke(obj, args);
}
else
{
throw new NullReferenceException("!!!");
}
jianshao810 2010-05-20
  • 打赏
  • 举报
回复
跟着楼主学习
皇城龙三 2010-05-20
  • 打赏
  • 举报
回复
关于CodeSmith的,希望对你有所帮助

http://blog.csdn.net/dalao812/archive/2007/08/17/1748124.aspx
MasDn 2010-05-20
  • 打赏
  • 举报
回复
实例化程序集中的一个类,并调用该对象的方法 我就不明白了 跟codesmith 有什么关系。

实例化其他程序集里的一个类用反射就好了,再invoke方法就好了啊

不需要在那个类里加个Assembly的属性

不知道我理解的对不对 你的意思
yuanhuiqiao 2010-05-20
  • 打赏
  • 举报
回复
yuanhuiqiao 2010-05-20
  • 打赏
  • 举报
回复
sf,先占上,再看
wuyq11 2010-05-20
  • 打赏
  • 举报
回复
class Reflect
{
private int Add(int arg0, int arg1, int arg2)
{
return arg0 + arg1 + arg2;
}
}
class Program
{
internal static int CallAdd()
{
object target = Assembly.GetExecutingAssembly().CreateInstance("NameSpace.Reflect", true);

Type type = target.GetType();
MethodInfo methodInfo = type.GetMethod("Add", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);

if (methodInfo == null)
return 0;

object[] args = new object[] { 10, 20, 30 };
object result = methodInfo.Invoke(target, args);
return Convert.ToInt32(result);
}
}
方法没找到吗?
code smith
gaijf 2010-05-20
  • 打赏
  • 举报
回复
up



up






gaijf 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ly302 的回复:]

关于CodeSmith的,希望对你有所帮助

http://blog.csdn.net/dalao812/archive/2007/08/17/1748124.aspx
[/Quote]

谢谢,很有帮助!
gaijf 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 masdn 的回复:]

实例化程序集中的一个类,并调用该对象的方法 我就不明白了 跟codesmith 有什么关系。

实例化其他程序集里的一个类用反射就好了,再invoke方法就好了啊

不需要在那个类里加个Assembly的属性

不知道我理解的对不对 你的意思
[/Quote]

你的理解是对的,跟codesmith没有必然关系,我把带代码贴出,请看看哪有问题:

程序集:Test.dll
类名:StringUtil
方法名:Testing

<%
Module module = AssemblyToLoad.GetModule("Test.dll");
Type[] types = module.FindTypes(Module.FilterTypeName,"StringUtil");
if(types.Length != 0)
{
object obj = AssemblyToLoad.CreateInstance("StringUtil");

MethodInfo m = obj.GetType().GetMethod("Testing",BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);

if (m != null)
{
Object[] args = new Object[1];
args[0] = "Test";
m.Invoke(obj, args);
}
else
{
throw new NullReferenceException("error!!!");
}
}
%>
codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧