本文整理汇总了C#中ModuleScope类的典型用法代码示例。如果您正苦于以下问题:C# ModuleScope类的具体用法?C# ModuleScope怎么用?C# ModuleScope使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ModuleScope类属于命名空间,在下文中一共展示了ModuleScope类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ClassProxyWithTargetTargetContributor
public ClassProxyWithTargetTargetContributor(Type targetType, IList<MethodInfo> methodsToSkip,
INamingScope namingScope, ModuleScope scope)
: base(namingScope, scope)
{
this.targetType = targetType;
this.methodsToSkip = methodsToSkip;
}
示例2: InterfaceProxyWithOptionalTargetContributor
public InterfaceProxyWithOptionalTargetContributor(INamingScope namingScope, ModuleScope scope, GetTargetExpressionDelegate getTarget,
GetTargetReferenceDelegate getTargetReference)
: base(namingScope, scope, getTarget)
{
this.getTargetReference = getTargetReference;
canChangeTarget = true;
}
示例3: ModuleScopeCanHandleSignedAndUnsignedInParallel
public void ModuleScopeCanHandleSignedAndUnsignedInParallel()
{
var scope = new ModuleScope();
Assert.IsNull(scope.StrongNamedModule);
Assert.IsNull(scope.WeakNamedModule);
var one = scope.ObtainDynamicModuleWithStrongName();
Assert.IsNotNull(scope.StrongNamedModule);
Assert.IsNull(scope.WeakNamedModule);
Assert.AreSame(one, scope.StrongNamedModule);
var two = scope.ObtainDynamicModuleWithWeakName();
Assert.IsNotNull(scope.StrongNamedModule);
Assert.IsNotNull(scope.WeakNamedModule);
Assert.AreSame(two, scope.WeakNamedModule);
Assert.AreNotSame(one, two);
Assert.AreNotSame(one.Assembly, two.Assembly);
var three = scope.ObtainDynamicModuleWithStrongName();
var four = scope.ObtainDynamicModuleWithWeakName();
Assert.AreSame(one, three);
Assert.AreSame(two, four);
}
示例4: ModuleScopeStoresModuleBuilder
public void ModuleScopeStoresModuleBuilder()
{
var scope = new ModuleScope();
var one = scope.ObtainDynamicModuleWithStrongName();
var two = scope.ObtainDynamicModuleWithStrongName();
Assert.AreSame(one, two);
Assert.AreSame(one.Assembly, two.Assembly);
}
示例5: ClassProxyWithTargetGenerator
public ClassProxyWithTargetGenerator(ModuleScope scope, Type classToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options)
: base(scope, classToProxy)
{
CheckNotGenericTypeDefinition(targetType, "targetType");
EnsureDoesNotImplementIProxyTargetAccessor(targetType, "targetType");
CheckNotGenericTypeDefinitions(additionalInterfacesToProxy, "additionalInterfacesToProxy");
options.Initialize();
ProxyGenerationOptions = options;
this.additionalInterfacesToProxy = TypeUtil.GetAllInterfaces(additionalInterfacesToProxy).ToArray();
}
示例6: ImplicitModulePaths
public void ImplicitModulePaths()
{
var scope = new ModuleScope(true);
Assert.AreEqual(ModuleScope.DEFAULT_FILE_NAME, scope.StrongNamedModuleName);
Assert.AreEqual(Path.Combine(Directory.GetCurrentDirectory(), ModuleScope.DEFAULT_FILE_NAME),
scope.ObtainDynamicModuleWithStrongName().FullyQualifiedName);
Assert.IsNull(scope.StrongNamedModuleDirectory);
Assert.AreEqual(ModuleScope.DEFAULT_FILE_NAME, scope.WeakNamedModuleName);
Assert.AreEqual(Path.Combine(Directory.GetCurrentDirectory(), ModuleScope.DEFAULT_FILE_NAME),
scope.ObtainDynamicModuleWithWeakName().FullyQualifiedName);
Assert.IsNull(scope.WeakNamedModuleDirectory);
}
示例7: ClassEmitter
public ClassEmitter(ModuleScope modulescope, String name, Type baseType, Type[] interfaces, TypeAttributes flags, bool forceUnsigned)
: base(CreateTypeBuilder (modulescope, name, baseType, interfaces, flags, forceUnsigned))
{
InitializeGenericArgumentsFromBases(ref baseType, ref interfaces);
if (interfaces != null)
{
foreach(Type inter in interfaces)
{
TypeBuilder.AddInterfaceImplementation(inter);
}
}
TypeBuilder.SetParent(baseType);
}
示例8: ExplicitModulePaths
public void ExplicitModulePaths ()
{
ModuleScope scope = new ModuleScope (true, "Strong", "StrongModule.dll", "Weak", "WeakModule.dll");
Assert.AreEqual ("StrongModule.dll", scope.StrongNamedModuleName);
Assert.AreEqual (Path.Combine (Environment.CurrentDirectory, "StrongModule.dll"), scope.ObtainDynamicModuleWithStrongName ().FullyQualifiedName);
Assert.IsNull (scope.StrongNamedModuleDirectory);
Assert.AreEqual ("WeakModule.dll", scope.WeakNamedModuleName);
Assert.AreEqual (Path.Combine (Environment.CurrentDirectory, "WeakModule.dll"), scope.ObtainDynamicModuleWithWeakName ().FullyQualifiedName);
Assert.IsNull (scope.WeakNamedModuleDirectory);
scope = new ModuleScope (true, "Strong", @"c:\Foo\StrongModule.dll", "Weak", @"d:\Bar\WeakModule.dll");
Assert.AreEqual ("StrongModule.dll", scope.StrongNamedModuleName);
Assert.AreEqual (@"c:\Foo\StrongModule.dll", scope.ObtainDynamicModuleWithStrongName ().FullyQualifiedName);
Assert.AreEqual (@"c:\Foo", scope.StrongNamedModuleDirectory);
Assert.AreEqual ("WeakModule.dll", scope.WeakNamedModuleName);
Assert.AreEqual (@"d:\Bar\WeakModule.dll", scope.ObtainDynamicModuleWithWeakName ().FullyQualifiedName);
Assert.AreEqual (@"d:\Bar", scope.WeakNamedModuleDirectory);
}
示例9: DefaultProxyBuilderWithSpecificScope
public void DefaultProxyBuilderWithSpecificScope()
{
var scope = new ModuleScope(false);
var builder = new DefaultProxyBuilder(scope);
Assert.AreSame(scope, builder.ModuleScope);
}
示例10: GeneratedAssembliesWithCustomName
public void GeneratedAssembliesWithCustomName()
{
var scope = new ModuleScope(false,false, "Strong", "Module1.dll", "Weak", "Module2,dll");
var strong = scope.ObtainDynamicModuleWithStrongName();
var weak = scope.ObtainDynamicModuleWithWeakName();
Assert.AreEqual("Strong", strong.Assembly.GetName().Name);
Assert.AreEqual("Weak", weak.Assembly.GetName().Name);
}
示例11: ModuleScopeDoesntTryToDeleteFromCurrentDirectory
public void ModuleScopeDoesntTryToDeleteFromCurrentDirectory()
{
var moduleDirectory = Path.Combine(Directory.GetCurrentDirectory(), "GeneratedDlls");
if (Directory.Exists(moduleDirectory))
Directory.Delete(moduleDirectory, true);
var strongModulePath = Path.Combine(moduleDirectory, "Strong.dll");
var weakModulePath = Path.Combine(moduleDirectory, "Weak.dll");
Directory.CreateDirectory(moduleDirectory);
var scope = new ModuleScope(true, false, "Strong", strongModulePath, "Weak", weakModulePath);
using (File.Create(Path.Combine(Directory.GetCurrentDirectory(), "Strong.dll")))
{
scope.ObtainDynamicModuleWithStrongName();
scope.SaveAssembly(true); // this will throw if SaveAssembly tries to delete from the current directory
}
using (File.Create(Path.Combine(Directory.GetCurrentDirectory(), "Weak.dll")))
{
scope.ObtainDynamicModuleWithWeakName();
scope.SaveAssembly(false); // this will throw if SaveAssembly tries to delete from the current directory
}
// Clean up the generated DLLs because the FileStreams are now closed
Directory.Delete(moduleDirectory, true);
File.Delete(Path.Combine(Directory.GetCurrentDirectory(), "Strong.dll"));
File.Delete(Path.Combine(Directory.GetCurrentDirectory(), "Weak.dll"));
}
示例12: CacheMappingsHoldTypes
public void CacheMappingsHoldTypes()
{
var scope = new ModuleScope(true);
var builder = new DefaultProxyBuilder(scope);
var cp = builder.CreateClassProxyType(typeof (object), Type.EmptyTypes, ProxyGenerationOptions.Default);
var savedPath = scope.SaveAssembly();
CrossAppDomainCaller.RunInOtherAppDomain(delegate(object[] args)
{
var assembly = Assembly.LoadFrom((string) args[0]);
var attribute =
(CacheMappingsAttribute)
assembly.GetCustomAttributes(typeof (CacheMappingsAttribute), false)[0];
var entries = attribute.GetDeserializedMappings();
Assert.AreEqual(1, entries.Count);
var key = new CacheKey(typeof (object), new Type[0],
ProxyGenerationOptions.Default);
Assert.IsTrue(entries.ContainsKey(key));
Assert.AreEqual(args[1], entries[key]);
},
savedPath, cp.FullName);
File.Delete(savedPath);
}
示例13: GeneratedAssembliesDefaultName
public void GeneratedAssembliesDefaultName()
{
var scope = new ModuleScope();
var strong = scope.ObtainDynamicModuleWithStrongName();
var weak = scope.ObtainDynamicModuleWithWeakName();
Assert.AreEqual(ModuleScope.DEFAULT_ASSEMBLY_NAME, strong.Assembly.GetName().Name);
Assert.AreEqual(ModuleScope.DEFAULT_ASSEMBLY_NAME, weak.Assembly.GetName().Name);
}
示例14: BaseProxyGenerator
protected BaseProxyGenerator(ModuleScope scope, Type targetType)
{
this.scope = scope;
this.targetType = targetType;
}
示例15: CreateTypeBuilder
private static TypeBuilder CreateTypeBuilder(ModuleScope modulescope, string name, Type baseType, Type[] interfaces,
TypeAttributes flags, bool forceUnsigned)
{
bool isAssemblySigned = !forceUnsigned && !StrongNameUtil.IsAnyTypeFromUnsignedAssembly(baseType, interfaces);
return modulescope.ObtainDynamicModule(isAssemblySigned).DefineType(name, flags);
}