这段代码:
Type.GetType("namespace.a.b.ClassName")
Run Code Online (Sandbox Code Playgroud)
回报null.
我在使用中:
using namespace.a.b;
Run Code Online (Sandbox Code Playgroud)
更新:
类型存在,它在不同的类库中,我需要通过字符串名称来获取它.
我有以下代码:
public static T ParameterFetchValue<T>(string parameterKey)
{
Parameter result = null;
result = ParameterRepository.FetchParameter(parameterKey);
return (T)Convert.ChangeType(result.CurrentValue, typeof(T), CultureInfo.InvariantCulture);
}
Run Code Online (Sandbox Code Playgroud)
result.CurrentValue字符串的类型.我希望能够将其转换为Guid,但我一直收到错误:
从System.String到System.Guid的转换无效
这与原始数据类型完美配合.
有没有办法让这个工作非原始数据类型?
我的应用程序使用ClickOnce tehcnology.今天我需要以管理员身份运行它.我修改了清单文件
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
Run Code Online (Sandbox Code Playgroud)
至
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Run Code Online (Sandbox Code Playgroud)
但VS无法编译项目:
错误35 ClickOnce不支持请求执行级别'requireAdministrator'.
我认为不可能立刻使用它们.不是吗?我需要更改系统时间,我可以在应用程序级别执行此操作吗?我可以模仿它,所以应用程序.能做我想做的事.我改变时间+2小时然后放回一秒钟.我有几个dll,他们要求时间.
当我运行 .net exe 时,会创建相应的文件夹C:\Users\UserName\AppData\Local\AppName
在此文件夹内,会创建另一个文件夹AppName_Url_ABCXYZ
在此文件夹内,还会为 .net exe 的程序集版本创建另一个文件夹0.2.28.0
谁能解释一下 Windows 如何决定创建二级文件夹AppName_Url_ABCXYZ?
当我增加程序集版本并执行单个文件发布并运行生成的 exe 时,我遇到问题,AppName_Url_ABCXYZ创建一个包含新程序集版本文件夹的新文件夹。
这会导致问题,因为它破坏了功能, Properties.Settings.Default.Upgrade()因为要升级的设置不再位于预期目录中
好的:
-AppData
-Local
-MyApp
-MyApp_Url_ABCXYZ
-0.2.13.0
-0.2.14.0
-0.2.15.0
Run Code Online (Sandbox Code Playgroud)
坏的:
-AppData
-Local
-MyApp
-MyApp_Url_ABC1
-0.2.13.0
-MyApp_Url_ABC2
-0.2.14.0
-MyApp_Url_ABC3
-0.2.15.0
Run Code Online (Sandbox Code Playgroud)
更新:
@Richard Deeming 提供的信息表明 appdata 文件夹的哈希部分是这样生成的:
var uri = "file:///" + fullExePath; //or 'assemblyName.CodeBase' if vshost (you can check the 'FriendlyName')
uri = uri.ToUpperInvariant();
var ms = new MemoryStream();
var bSer = new BinaryFormatter();
bSer.Serialize(ms, uri);
ms.Position …Run Code Online (Sandbox Code Playgroud) 当前,我的应用程序的用户设置存储在此默认目录中:
C:\Users\{User Name}\AppData\Roaming\{Company Name}\{Assembly Name}.vshos_Url_{Hash}\{Assembly Version}
Run Code Online (Sandbox Code Playgroud)
我知道默认Microsoft命名规则的含义,我的问题是:如何在执行时更改defaut文件夹或通过修改appconfig文件?
我的意图是只能处理将应用程序的用户设置保存到的目录,例如,我想将用户设置文件保存在以下目录中:
C:\Users\{User Name}\AppData\Roaming\{Assembly Name}
Run Code Online (Sandbox Code Playgroud)
我知道这是可以实现的,因为我已经看到很多.NET应用程序可以将其userconfig文件存储在自定义漫游文件夹中,该文件夹不遵循Microsoft默认规则以及未处理的哈希和其他令人讨厌的命名规则。
c# ×5
.net ×3
clickonce ×1
generics ×1
reflection ×1
time ×1
user-config ×1
vb.net ×1
winapi ×1
windows ×1